From 5c34141af1110e98e9e9721c767adc1a2cd37205 Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Wed, 9 Mar 2022 16:57:08 +0000 Subject: [PATCH] CodeGen from PR 18154 in Azure/azure-rest-api-specs Merge 1a8486d9d6276099d80948951dd2b6d6cb2a08ab into 5e638554b6284a41ef1918ef5d700f70ec338799 --- swaggerci/azure-kusto/.gitattributes | 1 + swaggerci/azure-kusto/.gitignore | 5 + swaggerci/azure-kusto/Az.Kusto.csproj | 43 + swaggerci/azure-kusto/Az.Kusto.format.ps1xml | 3123 +++ swaggerci/azure-kusto/Az.Kusto.nuspec | 32 + swaggerci/azure-kusto/Az.Kusto.psd1 | 24 + swaggerci/azure-kusto/Az.Kusto.psm1 | 103 + swaggerci/azure-kusto/MSSharedLibKey.snk | Bin 0 -> 160 bytes swaggerci/azure-kusto/README.md | 27 + swaggerci/azure-kusto/build-module.ps1 | 153 + swaggerci/azure-kusto/check-dependencies.ps1 | 57 + .../azure-kusto/create-model-cmdlets.ps1 | 161 + .../azure-kusto/custom/Az.Kusto.custom.psm1 | 17 + swaggerci/azure-kusto/custom/README.md | 41 + .../Add-AzKustoClusterLanguageExtension.md | 298 + .../docs/Add-AzKustoDatabasePrincipal.md | 278 + swaggerci/azure-kusto/docs/Az.Kusto.md | 184 + ...et-AzKustoAttachedDatabaseConfiguration.md | 187 + .../azure-kusto/docs/Get-AzKustoCluster.md | 176 + .../Get-AzKustoClusterFollowerDatabase.md | 151 + .../Get-AzKustoClusterLanguageExtension.md | 151 + ...lusterOutboundNetworkDependencyEndpoint.md | 120 + .../Get-AzKustoClusterPrincipalAssignment.md | 187 + .../azure-kusto/docs/Get-AzKustoClusterSku.md | 128 + .../docs/Get-AzKustoDataConnection.md | 201 + .../azure-kusto/docs/Get-AzKustoDatabase.md | 186 + .../docs/Get-AzKustoDatabasePrincipal.md | 166 + .../Get-AzKustoDatabasePrincipalAssignment.md | 203 + .../docs/Get-AzKustoManagedPrivateEndpoint.md | 187 + .../docs/Get-AzKustoOperationsResult.md | 165 + .../Get-AzKustoOperationsResultsLocation.md | 181 + .../Get-AzKustoPrivateEndpointConnection.md | 187 + .../docs/Get-AzKustoPrivateLinkResource.md | 186 + .../azure-kusto/docs/Get-AzKustoScript.md | 201 + .../Invoke-AzKustoDataConnectionValidation.md | 327 + ...ke-AzKustoDetachClusterFollowerDatabase.md | 310 + ...ke-AzKustoDiagnoseClusterVirtualNetwork.md | 228 + ...ew-AzKustoAttachedDatabaseConfiguration.md | 353 + .../azure-kusto/docs/New-AzKustoCluster.md | 739 + .../New-AzKustoClusterPrincipalAssignment.md | 259 + .../docs/New-AzKustoDataConnection.md | 242 + .../azure-kusto/docs/New-AzKustoDatabase.md | 227 + .../New-AzKustoDatabasePrincipalAssignment.md | 274 + .../docs/New-AzKustoManagedPrivateEndpoint.md | 258 + .../New-AzKustoPrivateEndpointConnection.md | 228 + .../azure-kusto/docs/New-AzKustoScript.md | 293 + swaggerci/azure-kusto/docs/README.md | 11 + ...ve-AzKustoAttachedDatabaseConfiguration.md | 258 + .../azure-kusto/docs/Remove-AzKustoCluster.md | 242 + .../Remove-AzKustoClusterLanguageExtension.md | 298 + ...emove-AzKustoClusterPrincipalAssignment.md | 258 + .../docs/Remove-AzKustoDataConnection.md | 273 + .../docs/Remove-AzKustoDatabase.md | 258 + .../docs/Remove-AzKustoDatabasePrincipal.md | 278 + ...move-AzKustoDatabasePrincipalAssignment.md | 273 + .../Remove-AzKustoManagedPrivateEndpoint.md | 258 + ...Remove-AzKustoPrivateEndpointConnection.md | 258 + .../azure-kusto/docs/Remove-AzKustoScript.md | 273 + .../azure-kusto/docs/Start-AzKustoCluster.md | 242 + .../azure-kusto/docs/Stop-AzKustoCluster.md | 242 + ...edDatabaseConfigurationNameAvailability.md | 248 + .../Test-AzKustoClusterNameAvailability.md | 230 + ...sterPrincipalAssignmentNameAvailability.md | 248 + ...t-AzKustoDataConnectionNameAvailability.md | 263 + .../Test-AzKustoDatabaseNameAvailability.md | 263 + ...basePrincipalAssignmentNameAvailability.md | 263 + ...oManagedPrivateEndpointNameAvailability.md | 248 + .../Test-AzKustoScriptNameAvailability.md | 262 + .../azure-kusto/docs/Update-AzKustoCluster.md | 762 + .../docs/Update-AzKustoDataConnection.md | 288 + .../docs/Update-AzKustoDatabase.md | 273 + .../Update-AzKustoManagedPrivateEndpoint.md | 305 + .../azure-kusto/docs/Update-AzKustoScript.md | 340 + .../Add-AzKustoClusterLanguageExtension.md | 18 + .../examples/Add-AzKustoDatabasePrincipal.md | 18 + ...et-AzKustoAttachedDatabaseConfiguration.md | 18 + .../examples/Get-AzKustoCluster.md | 18 + .../Get-AzKustoClusterFollowerDatabase.md | 18 + .../Get-AzKustoClusterLanguageExtension.md | 18 + ...lusterOutboundNetworkDependencyEndpoint.md | 18 + .../Get-AzKustoClusterPrincipalAssignment.md | 18 + .../examples/Get-AzKustoClusterSku.md | 18 + .../examples/Get-AzKustoDataConnection.md | 18 + .../examples/Get-AzKustoDatabase.md | 18 + .../examples/Get-AzKustoDatabasePrincipal.md | 18 + .../Get-AzKustoDatabasePrincipalAssignment.md | 18 + .../Get-AzKustoManagedPrivateEndpoint.md | 18 + .../examples/Get-AzKustoOperationsResult.md | 18 + .../Get-AzKustoOperationsResultsLocation.md | 18 + .../Get-AzKustoPrivateEndpointConnection.md | 18 + .../Get-AzKustoPrivateLinkResource.md | 18 + .../azure-kusto/examples/Get-AzKustoScript.md | 18 + .../Invoke-AzKustoDataConnectionValidation.md | 18 + ...ke-AzKustoDetachClusterFollowerDatabase.md | 18 + ...ke-AzKustoDiagnoseClusterVirtualNetwork.md | 18 + ...ew-AzKustoAttachedDatabaseConfiguration.md | 18 + .../examples/New-AzKustoCluster.md | 18 + .../New-AzKustoClusterPrincipalAssignment.md | 18 + .../examples/New-AzKustoDataConnection.md | 18 + .../examples/New-AzKustoDatabase.md | 18 + .../New-AzKustoDatabasePrincipalAssignment.md | 18 + .../New-AzKustoManagedPrivateEndpoint.md | 18 + .../New-AzKustoPrivateEndpointConnection.md | 18 + .../azure-kusto/examples/New-AzKustoScript.md | 18 + ...ve-AzKustoAttachedDatabaseConfiguration.md | 18 + .../examples/Remove-AzKustoCluster.md | 18 + .../Remove-AzKustoClusterLanguageExtension.md | 18 + ...emove-AzKustoClusterPrincipalAssignment.md | 18 + .../examples/Remove-AzKustoDataConnection.md | 18 + .../examples/Remove-AzKustoDatabase.md | 18 + .../Remove-AzKustoDatabasePrincipal.md | 18 + ...move-AzKustoDatabasePrincipalAssignment.md | 18 + .../Remove-AzKustoManagedPrivateEndpoint.md | 18 + ...Remove-AzKustoPrivateEndpointConnection.md | 18 + .../examples/Remove-AzKustoScript.md | 18 + .../examples/Start-AzKustoCluster.md | 18 + .../examples/Stop-AzKustoCluster.md | 18 + ...edDatabaseConfigurationNameAvailability.md | 18 + .../Test-AzKustoClusterNameAvailability.md | 18 + ...sterPrincipalAssignmentNameAvailability.md | 18 + ...t-AzKustoDataConnectionNameAvailability.md | 18 + .../Test-AzKustoDatabaseNameAvailability.md | 18 + ...basePrincipalAssignmentNameAvailability.md | 18 + ...oManagedPrivateEndpointNameAvailability.md | 18 + .../Test-AzKustoScriptNameAvailability.md | 18 + .../examples/Update-AzKustoCluster.md | 18 + .../examples/Update-AzKustoDataConnection.md | 18 + .../examples/Update-AzKustoDatabase.md | 18 + .../Update-AzKustoManagedPrivateEndpoint.md | 18 + .../examples/Update-AzKustoScript.md | 18 + swaggerci/azure-kusto/export-surface.ps1 | 33 + .../Add-AzKustoClusterLanguageExtension.ps1 | 219 + .../exports/Add-AzKustoDatabasePrincipal.ps1 | 218 + ...t-AzKustoAttachedDatabaseConfiguration.ps1 | 180 + .../exports/Get-AzKustoCluster.ps1 | 175 + .../Get-AzKustoClusterFollowerDatabase.ps1 | 139 + .../Get-AzKustoClusterLanguageExtension.ps1 | 139 + ...usterOutboundNetworkDependencyEndpoint.ps1 | 139 + .../Get-AzKustoClusterPrincipalAssignment.ps1 | 179 + .../exports/Get-AzKustoClusterSku.ps1 | 142 + .../exports/Get-AzKustoDataConnection.ps1 | 187 + .../exports/Get-AzKustoDatabase.ps1 | 180 + .../exports/Get-AzKustoDatabasePrincipal.ps1 | 145 + ...Get-AzKustoDatabasePrincipalAssignment.ps1 | 186 + .../Get-AzKustoManagedPrivateEndpoint.ps1 | 180 + .../exports/Get-AzKustoOperationsResult.ps1 | 169 + .../Get-AzKustoOperationsResultsLocation.ps1 | 175 + .../Get-AzKustoPrivateEndpointConnection.ps1 | 180 + .../Get-AzKustoPrivateLinkResource.ps1 | 180 + .../azure-kusto/exports/Get-AzKustoScript.ps1 | 187 + ...Invoke-AzKustoDataConnectionValidation.ps1 | 232 + ...e-AzKustoDetachClusterFollowerDatabase.ps1 | 221 + ...e-AzKustoDiagnoseClusterVirtualNetwork.ps1 | 181 + ...w-AzKustoAttachedDatabaseConfiguration.ps1 | 225 + .../exports/New-AzKustoCluster.ps1 | 396 + .../New-AzKustoClusterPrincipalAssignment.ps1 | 184 + .../exports/New-AzKustoDataConnection.ps1 | 177 + .../exports/New-AzKustoDatabase.ps1 | 171 + ...New-AzKustoDatabasePrincipalAssignment.ps1 | 190 + .../New-AzKustoManagedPrivateEndpoint.ps1 | 182 + .../New-AzKustoPrivateEndpointConnection.ps1 | 170 + .../azure-kusto/exports/New-AzKustoScript.ps1 | 199 + .../exports/ProxyCmdletDefinitions.ps1 | 10844 +++++++++++ swaggerci/azure-kusto/exports/README.md | 20 + ...e-AzKustoAttachedDatabaseConfiguration.ps1 | 194 + .../exports/Remove-AzKustoCluster.ps1 | 188 + ...Remove-AzKustoClusterLanguageExtension.ps1 | 219 + ...move-AzKustoClusterPrincipalAssignment.ps1 | 193 + .../exports/Remove-AzKustoDataConnection.ps1 | 200 + .../exports/Remove-AzKustoDatabase.ps1 | 194 + .../Remove-AzKustoDatabasePrincipal.ps1 | 218 + ...ove-AzKustoDatabasePrincipalAssignment.ps1 | 199 + .../Remove-AzKustoManagedPrivateEndpoint.ps1 | 194 + ...emove-AzKustoPrivateEndpointConnection.ps1 | 194 + .../exports/Remove-AzKustoScript.ps1 | 200 + .../exports/Start-AzKustoCluster.ps1 | 188 + .../exports/Stop-AzKustoCluster.ps1 | 188 + ...dDatabaseConfigurationNameAvailability.ps1 | 195 + .../Test-AzKustoClusterNameAvailability.ps1 | 188 + ...terPrincipalAssignmentNameAvailability.ps1 | 195 + ...-AzKustoDataConnectionNameAvailability.ps1 | 202 + .../Test-AzKustoDatabaseNameAvailability.ps1 | 204 + ...asePrincipalAssignmentNameAvailability.ps1 | 202 + ...ManagedPrivateEndpointNameAvailability.ps1 | 195 + .../Test-AzKustoScriptNameAvailability.ps1 | 202 + .../exports/Update-AzKustoCluster.ps1 | 408 + .../exports/Update-AzKustoDataConnection.ps1 | 207 + .../exports/Update-AzKustoDatabase.ps1 | 201 + .../Update-AzKustoManagedPrivateEndpoint.ps1 | 212 + .../exports/Update-AzKustoScript.ps1 | 229 + swaggerci/azure-kusto/generate-help.ps1 | 66 + swaggerci/azure-kusto/generated/Module.cs | 173 + .../generated/api/KustoManagementClient.cs | 15684 ++++++++++++++++ .../generated/api/Models/Any.PowerShell.cs | 134 + .../generated/api/Models/Any.TypeConverter.cs | 147 + .../azure-kusto/generated/api/Models/Any.cs | 34 + .../generated/api/Models/Any.json.cs | 102 + .../Models/Api10/ProxyResource.PowerShell.cs | 160 + .../Api10/ProxyResource.TypeConverter.cs | 147 + .../api/Models/Api10/ProxyResource.cs | 79 + .../api/Models/Api10/ProxyResource.json.cs | 108 + .../api/Models/Api10/Resource.PowerShell.cs | 160 + .../Models/Api10/Resource.TypeConverter.cs | 147 + .../generated/api/Models/Api10/Resource.cs | 108 + .../api/Models/Api10/Resource.json.cs | 119 + .../Api10/TrackedResource.PowerShell.cs | 176 + .../Api10/TrackedResource.TypeConverter.cs | 147 + .../api/Models/Api10/TrackedResource.cs | 113 + .../api/Models/Api10/TrackedResource.json.cs | 112 + .../Api10/TrackedResourceTags.PowerShell.cs | 138 + .../TrackedResourceTags.TypeConverter.cs | 147 + .../api/Models/Api10/TrackedResourceTags.cs | 35 + .../Api10/TrackedResourceTags.dictionary.cs | 75 + .../Models/Api10/TrackedResourceTags.json.cs | 107 + .../api/Models/Api20/SystemData.PowerShell.cs | 182 + .../Models/Api20/SystemData.TypeConverter.cs | 147 + .../generated/api/Models/Api20/SystemData.cs | 136 + .../api/Models/Api20/SystemData.json.cs | 116 + .../AcceptedAudiences.PowerShell.cs | 142 + .../AcceptedAudiences.TypeConverter.cs | 147 + .../Models/Api20220201/AcceptedAudiences.cs | 51 + .../Api20220201/AcceptedAudiences.json.cs | 106 + ...ttachedDatabaseConfiguration.PowerShell.cs | 272 + ...chedDatabaseConfiguration.TypeConverter.cs | 147 + .../AttachedDatabaseConfiguration.cs | 289 + .../AttachedDatabaseConfiguration.json.cs | 110 + ...abaseConfigurationListResult.PowerShell.cs | 145 + ...seConfigurationListResult.TypeConverter.cs | 150 + ...AttachedDatabaseConfigurationListResult.cs | 51 + ...hedDatabaseConfigurationListResult.json.cs | 116 + ...abaseConfigurationProperties.PowerShell.cs | 235 + ...seConfigurationProperties.TypeConverter.cs | 150 + ...AttachedDatabaseConfigurationProperties.cs | 241 + ...hedDatabaseConfigurationProperties.json.cs | 134 + ...nfigurationsCheckNameRequest.PowerShell.cs | 155 + ...gurationsCheckNameRequest.TypeConverter.cs | 150 + ...dDatabaseConfigurationsCheckNameRequest.cs | 81 + ...baseConfigurationsCheckNameRequest.json.cs | 113 + .../Api20220201/AzureCapacity.PowerShell.cs | 166 + .../AzureCapacity.TypeConverter.cs | 147 + .../api/Models/Api20220201/AzureCapacity.cs | 102 + .../Models/Api20220201/AzureCapacity.json.cs | 112 + .../AzureResourceSku.PowerShell.cs | 214 + .../AzureResourceSku.TypeConverter.cs | 147 + .../Models/Api20220201/AzureResourceSku.cs | 173 + .../Api20220201/AzureResourceSku.json.cs | 110 + .../Models/Api20220201/AzureSku.PowerShell.cs | 158 + .../Api20220201/AzureSku.TypeConverter.cs | 147 + .../api/Models/Api20220201/AzureSku.cs | 85 + .../api/Models/Api20220201/AzureSku.json.cs | 110 + .../CheckNameRequest.PowerShell.cs | 150 + .../CheckNameRequest.TypeConverter.cs | 147 + .../Models/Api20220201/CheckNameRequest.cs | 68 + .../Api20220201/CheckNameRequest.json.cs | 108 + .../Api20220201/CheckNameResult.PowerShell.cs | 166 + .../CheckNameResult.TypeConverter.cs | 147 + .../api/Models/Api20220201/CheckNameResult.cs | 108 + .../Api20220201/CheckNameResult.json.cs | 112 + .../Api20220201/CloudError.PowerShell.cs | 174 + .../Api20220201/CloudError.TypeConverter.cs | 147 + .../api/Models/Api20220201/CloudError.cs | 120 + .../api/Models/Api20220201/CloudError.json.cs | 106 + .../Api20220201/CloudErrorBody.PowerShell.cs | 166 + .../CloudErrorBody.TypeConverter.cs | 147 + .../api/Models/Api20220201/CloudErrorBody.cs | 120 + .../Models/Api20220201/CloudErrorBody.json.cs | 120 + .../Models/Api20220201/Cluster.PowerShell.cs | 622 + .../Api20220201/Cluster.TypeConverter.cs | 147 + .../api/Models/Api20220201/Cluster.cs | 925 + .../api/Models/Api20220201/Cluster.json.cs | 132 + .../ClusterCheckNameRequest.PowerShell.cs | 150 + .../ClusterCheckNameRequest.TypeConverter.cs | 147 + .../Api20220201/ClusterCheckNameRequest.cs | 71 + .../ClusterCheckNameRequest.json.cs | 108 + .../ClusterListResult.PowerShell.cs | 142 + .../ClusterListResult.TypeConverter.cs | 147 + .../Models/Api20220201/ClusterListResult.cs | 51 + .../Api20220201/ClusterListResult.json.cs | 114 + .../ClusterPrincipalAssignment.PowerShell.cs | 230 + ...lusterPrincipalAssignment.TypeConverter.cs | 147 + .../Api20220201/ClusterPrincipalAssignment.cs | 219 + .../ClusterPrincipalAssignment.json.cs | 108 + ...alAssignmentCheckNameRequest.PowerShell.cs | 153 + ...ssignmentCheckNameRequest.TypeConverter.cs | 150 + ...sterPrincipalAssignmentCheckNameRequest.cs | 73 + ...rincipalAssignmentCheckNameRequest.json.cs | 110 + ...rincipalAssignmentListResult.PowerShell.cs | 144 + ...cipalAssignmentListResult.TypeConverter.cs | 149 + .../ClusterPrincipalAssignmentListResult.cs | 51 + ...usterPrincipalAssignmentListResult.json.cs | 115 + .../ClusterPrincipalProperties.PowerShell.cs | 198 + ...lusterPrincipalProperties.TypeConverter.cs | 147 + .../Api20220201/ClusterPrincipalProperties.cs | 188 + .../ClusterPrincipalProperties.json.cs | 132 + .../ClusterProperties.PowerShell.cs | 422 + .../ClusterProperties.TypeConverter.cs | 147 + .../Models/Api20220201/ClusterProperties.cs | 644 + .../Api20220201/ClusterProperties.json.cs | 213 + .../Api20220201/ClusterUpdate.PowerShell.cs | 542 + .../ClusterUpdate.TypeConverter.cs | 147 + .../api/Models/Api20220201/ClusterUpdate.cs | 791 + .../Models/Api20220201/ClusterUpdate.json.cs | 116 + .../ClusterUpdateTags.PowerShell.cs | 138 + .../ClusterUpdateTags.TypeConverter.cs | 147 + .../Models/Api20220201/ClusterUpdateTags.cs | 35 + .../ClusterUpdateTags.dictionary.cs | 75 + .../Api20220201/ClusterUpdateTags.json.cs | 107 + ...entitiesAdditionalproperties.PowerShell.cs | 151 + ...itiesAdditionalproperties.TypeConverter.cs | 152 + ...rassignedidentitiesAdditionalproperties.cs | 73 + ...gnedidentitiesAdditionalproperties.json.cs | 116 + .../Api20220201/DataConnection.PowerShell.cs | 182 + .../DataConnection.TypeConverter.cs | 147 + .../api/Models/Api20220201/DataConnection.cs | 135 + .../Models/Api20220201/DataConnection.json.cs | 133 + ...taConnectionCheckNameRequest.PowerShell.cs | 152 + ...onnectionCheckNameRequest.TypeConverter.cs | 147 + .../DataConnectionCheckNameRequest.cs | 71 + .../DataConnectionCheckNameRequest.json.cs | 108 + .../DataConnectionListResult.PowerShell.cs | 142 + .../DataConnectionListResult.TypeConverter.cs | 147 + .../Api20220201/DataConnectionListResult.cs | 51 + .../DataConnectionListResult.json.cs | 114 + .../DataConnectionValidation.PowerShell.cs | 198 + .../DataConnectionValidation.TypeConverter.cs | 147 + .../Api20220201/DataConnectionValidation.cs | 175 + .../DataConnectionValidation.json.cs | 108 + ...nnectionValidationListResult.PowerShell.cs | 144 + ...ctionValidationListResult.TypeConverter.cs | 148 + .../DataConnectionValidationListResult.cs | 51 + ...DataConnectionValidationListResult.json.cs | 115 + ...taConnectionValidationResult.PowerShell.cs | 144 + ...onnectionValidationResult.TypeConverter.cs | 147 + .../DataConnectionValidationResult.cs | 51 + .../DataConnectionValidationResult.json.cs | 106 + .../Models/Api20220201/Database.PowerShell.cs | 182 + .../Api20220201/Database.TypeConverter.cs | 147 + .../api/Models/Api20220201/Database.cs | 135 + .../api/Models/Api20220201/Database.json.cs | 129 + .../DatabaseListResult.PowerShell.cs | 142 + .../DatabaseListResult.TypeConverter.cs | 147 + .../Models/Api20220201/DatabaseListResult.cs | 51 + .../Api20220201/DatabaseListResult.json.cs | 114 + .../DatabasePrincipal.PowerShell.cs | 190 + .../DatabasePrincipal.TypeConverter.cs | 147 + .../Models/Api20220201/DatabasePrincipal.cs | 156 + .../Api20220201/DatabasePrincipal.json.cs | 121 + .../DatabasePrincipalAssignment.PowerShell.cs | 230 + ...tabasePrincipalAssignment.TypeConverter.cs | 147 + .../DatabasePrincipalAssignment.cs | 219 + .../DatabasePrincipalAssignment.json.cs | 108 + ...alAssignmentCheckNameRequest.PowerShell.cs | 153 + ...ssignmentCheckNameRequest.TypeConverter.cs | 150 + ...basePrincipalAssignmentCheckNameRequest.cs | 73 + ...rincipalAssignmentCheckNameRequest.json.cs | 110 + ...rincipalAssignmentListResult.PowerShell.cs | 145 + ...cipalAssignmentListResult.TypeConverter.cs | 149 + .../DatabasePrincipalAssignmentListResult.cs | 51 + ...abasePrincipalAssignmentListResult.json.cs | 115 + ...DatabasePrincipalListRequest.PowerShell.cs | 142 + ...abasePrincipalListRequest.TypeConverter.cs | 147 + .../DatabasePrincipalListRequest.cs | 51 + .../DatabasePrincipalListRequest.json.cs | 114 + .../DatabasePrincipalListResult.PowerShell.cs | 142 + ...tabasePrincipalListResult.TypeConverter.cs | 147 + .../DatabasePrincipalListResult.cs | 51 + .../DatabasePrincipalListResult.json.cs | 114 + .../DatabasePrincipalProperties.PowerShell.cs | 198 + ...tabasePrincipalProperties.TypeConverter.cs | 147 + .../DatabasePrincipalProperties.cs | 188 + .../DatabasePrincipalProperties.json.cs | 132 + .../DatabaseStatistics.PowerShell.cs | 142 + .../DatabaseStatistics.TypeConverter.cs | 147 + .../Models/Api20220201/DatabaseStatistics.cs | 51 + .../Api20220201/DatabaseStatistics.json.cs | 106 + ...DiagnoseVirtualNetworkResult.PowerShell.cs | 140 + ...gnoseVirtualNetworkResult.TypeConverter.cs | 147 + .../DiagnoseVirtualNetworkResult.cs | 48 + .../DiagnoseVirtualNetworkResult.json.cs | 113 + .../EndpointDependency.PowerShell.cs | 152 + .../EndpointDependency.TypeConverter.cs | 147 + .../Models/Api20220201/EndpointDependency.cs | 70 + .../Api20220201/EndpointDependency.json.cs | 118 + .../Api20220201/EndpointDetail.PowerShell.cs | 144 + .../EndpointDetail.TypeConverter.cs | 147 + .../api/Models/Api20220201/EndpointDetail.cs | 53 + .../Models/Api20220201/EndpointDetail.json.cs | 108 + ...ventGridConnectionProperties.PowerShell.cs | 240 + ...tGridConnectionProperties.TypeConverter.cs | 147 + .../EventGridConnectionProperties.cs | 309 + .../EventGridConnectionProperties.json.cs | 136 + .../EventGridDataConnection.PowerShell.cs | 294 + .../EventGridDataConnection.TypeConverter.cs | 147 + .../Api20220201/EventGridDataConnection.cs | 347 + .../EventGridDataConnection.json.cs | 108 + ...EventHubConnectionProperties.PowerShell.cs | 222 + ...ntHubConnectionProperties.TypeConverter.cs | 147 + .../EventHubConnectionProperties.cs | 263 + .../EventHubConnectionProperties.json.cs | 140 + .../EventHubDataConnection.PowerShell.cs | 278 + .../EventHubDataConnection.TypeConverter.cs | 147 + .../Api20220201/EventHubDataConnection.cs | 307 + .../EventHubDataConnection.json.cs | 108 + .../FollowerDatabaseDefinition.PowerShell.cs | 158 + ...ollowerDatabaseDefinition.TypeConverter.cs | 147 + .../Api20220201/FollowerDatabaseDefinition.cs | 94 + .../FollowerDatabaseDefinition.json.cs | 113 + .../FollowerDatabaseListResult.PowerShell.cs | 142 + ...ollowerDatabaseListResult.TypeConverter.cs | 147 + .../Api20220201/FollowerDatabaseListResult.cs | 51 + .../FollowerDatabaseListResult.json.cs | 114 + .../Models/Api20220201/Identity.PowerShell.cs | 166 + .../Api20220201/Identity.TypeConverter.cs | 147 + .../api/Models/Api20220201/Identity.cs | 126 + .../api/Models/Api20220201/Identity.json.cs | 118 + ...entityUserAssignedIdentities.PowerShell.cs | 144 + ...ityUserAssignedIdentities.TypeConverter.cs | 147 + .../IdentityUserAssignedIdentities.cs | 40 + ...entityUserAssignedIdentities.dictionary.cs | 75 + .../IdentityUserAssignedIdentities.json.cs | 110 + .../IotHubConnectionProperties.PowerShell.cs | 206 + ...otHubConnectionProperties.TypeConverter.cs | 147 + .../Api20220201/IotHubConnectionProperties.cs | 217 + .../IotHubConnectionProperties.json.cs | 133 + .../IotHubDataConnection.PowerShell.cs | 262 + .../IotHubDataConnection.TypeConverter.cs | 147 + .../Api20220201/IotHubDataConnection.cs | 267 + .../Api20220201/IotHubDataConnection.json.cs | 108 + .../KeyVaultProperties.PowerShell.cs | 166 + .../KeyVaultProperties.TypeConverter.cs | 147 + .../Models/Api20220201/KeyVaultProperties.cs | 102 + .../Api20220201/KeyVaultProperties.json.cs | 112 + .../LanguageExtension.PowerShell.cs | 142 + .../LanguageExtension.TypeConverter.cs | 147 + .../Models/Api20220201/LanguageExtension.cs | 51 + .../Api20220201/LanguageExtension.json.cs | 106 + .../LanguageExtensionsList.PowerShell.cs | 142 + .../LanguageExtensionsList.TypeConverter.cs | 147 + .../Api20220201/LanguageExtensionsList.cs | 51 + .../LanguageExtensionsList.json.cs | 114 + .../ListResourceSkusResult.PowerShell.cs | 142 + .../ListResourceSkusResult.TypeConverter.cs | 147 + .../Api20220201/ListResourceSkusResult.cs | 51 + .../ListResourceSkusResult.json.cs | 114 + .../ManagedPrivateEndpoint.PowerShell.cs | 270 + .../ManagedPrivateEndpoint.TypeConverter.cs | 147 + .../Api20220201/ManagedPrivateEndpoint.cs | 288 + .../ManagedPrivateEndpoint.json.cs | 113 + ...gedPrivateEndpointListResult.PowerShell.cs | 144 + ...PrivateEndpointListResult.TypeConverter.cs | 147 + .../ManagedPrivateEndpointListResult.cs | 51 + .../ManagedPrivateEndpointListResult.json.cs | 114 + ...gedPrivateEndpointProperties.PowerShell.cs | 176 + ...PrivateEndpointProperties.TypeConverter.cs | 147 + .../ManagedPrivateEndpointProperties.cs | 128 + .../ManagedPrivateEndpointProperties.json.cs | 117 + ...ateEndpointsCheckNameRequest.PowerShell.cs | 155 + ...EndpointsCheckNameRequest.TypeConverter.cs | 150 + ...ManagedPrivateEndpointsCheckNameRequest.cs | 79 + ...edPrivateEndpointsCheckNameRequest.json.cs | 112 + .../Api20220201/Operation.PowerShell.cs | 198 + .../Api20220201/Operation.TypeConverter.cs | 147 + .../api/Models/Api20220201/Operation.cs | 153 + .../api/Models/Api20220201/Operation.json.cs | 112 + .../OperationDisplay.PowerShell.cs | 166 + .../OperationDisplay.TypeConverter.cs | 147 + .../Models/Api20220201/OperationDisplay.cs | 102 + .../Api20220201/OperationDisplay.json.cs | 112 + .../OperationListResult.PowerShell.cs | 154 + .../OperationListResult.TypeConverter.cs | 147 + .../Models/Api20220201/OperationListResult.cs | 73 + .../Api20220201/OperationListResult.json.cs | 119 + .../Api20220201/OperationResult.PowerShell.cs | 238 + .../OperationResult.TypeConverter.cs | 147 + .../api/Models/Api20220201/OperationResult.cs | 242 + .../Api20220201/OperationResult.json.cs | 129 + ...erationResultErrorProperties.PowerShell.cs | 152 + ...tionResultErrorProperties.TypeConverter.cs | 147 + .../OperationResultErrorProperties.cs | 68 + .../OperationResultErrorProperties.json.cs | 108 + .../OperationResultProperties.PowerShell.cs | 158 + ...OperationResultProperties.TypeConverter.cs | 147 + .../Api20220201/OperationResultProperties.cs | 88 + .../OperationResultProperties.json.cs | 113 + .../OptimizedAutoscale.PowerShell.cs | 166 + .../OptimizedAutoscale.TypeConverter.cs | 147 + .../Models/Api20220201/OptimizedAutoscale.cs | 108 + .../Api20220201/OptimizedAutoscale.json.cs | 112 + ...dNetworkDependenciesEndpoint.PowerShell.cs | 202 + ...tworkDependenciesEndpoint.TypeConverter.cs | 148 + .../OutboundNetworkDependenciesEndpoint.cs | 165 + ...utboundNetworkDependenciesEndpoint.json.cs | 116 + ...pendenciesEndpointListResult.PowerShell.cs | 153 + ...denciesEndpointListResult.TypeConverter.cs | 150 + ...ndNetworkDependenciesEndpointListResult.cs | 73 + ...workDependenciesEndpointListResult.json.cs | 122 + ...pendenciesEndpointProperties.PowerShell.cs | 163 + ...denciesEndpointProperties.TypeConverter.cs | 150 + ...ndNetworkDependenciesEndpointProperties.cs | 101 + ...workDependenciesEndpointProperties.json.cs | 126 + .../PrivateEndpointConnection.PowerShell.cs | 286 + ...PrivateEndpointConnection.TypeConverter.cs | 147 + .../Api20220201/PrivateEndpointConnection.cs | 291 + .../PrivateEndpointConnection.json.cs | 113 + ...EndpointConnectionListResult.PowerShell.cs | 144 + ...pointConnectionListResult.TypeConverter.cs | 148 + .../PrivateEndpointConnectionListResult.cs | 51 + ...rivateEndpointConnectionListResult.json.cs | 115 + ...EndpointConnectionProperties.PowerShell.cs | 200 + ...pointConnectionProperties.TypeConverter.cs | 148 + .../PrivateEndpointConnectionProperties.cs | 160 + ...rivateEndpointConnectionProperties.json.cs | 122 + .../PrivateEndpointProperty.PowerShell.cs | 142 + .../PrivateEndpointProperty.TypeConverter.cs | 147 + .../Api20220201/PrivateEndpointProperty.cs | 54 + .../PrivateEndpointProperty.json.cs | 109 + .../PrivateLinkResource.PowerShell.cs | 246 + .../PrivateLinkResource.TypeConverter.cs | 147 + .../Models/Api20220201/PrivateLinkResource.cs | 236 + .../Api20220201/PrivateLinkResource.json.cs | 113 + ...rivateLinkResourceListResult.PowerShell.cs | 144 + ...ateLinkResourceListResult.TypeConverter.cs | 147 + .../PrivateLinkResourceListResult.cs | 51 + .../PrivateLinkResourceListResult.json.cs | 114 + ...rivateLinkResourceProperties.PowerShell.cs | 160 + ...ateLinkResourceProperties.TypeConverter.cs | 147 + .../PrivateLinkResourceProperties.cs | 94 + .../PrivateLinkResourceProperties.json.cs | 135 + ...rviceConnectionStateProperty.PowerShell.cs | 161 + ...ceConnectionStateProperty.TypeConverter.cs | 150 + ...ivateLinkServiceConnectionStateProperty.cs | 90 + ...LinkServiceConnectionStateProperty.json.cs | 115 + .../ReadOnlyFollowingDatabase.PowerShell.cs | 254 + ...ReadOnlyFollowingDatabase.TypeConverter.cs | 147 + .../Api20220201/ReadOnlyFollowingDatabase.cs | 234 + .../ReadOnlyFollowingDatabase.json.cs | 108 + ...yFollowingDatabaseProperties.PowerShell.cs | 200 + ...llowingDatabaseProperties.TypeConverter.cs | 148 + .../ReadOnlyFollowingDatabaseProperties.cs | 183 + ...eadOnlyFollowingDatabaseProperties.json.cs | 137 + .../ReadWriteDatabase.PowerShell.cs | 238 + .../ReadWriteDatabase.TypeConverter.cs | 147 + .../Models/Api20220201/ReadWriteDatabase.cs | 197 + .../Api20220201/ReadWriteDatabase.json.cs | 108 + .../ReadWriteDatabaseProperties.PowerShell.cs | 182 + ...adWriteDatabaseProperties.TypeConverter.cs | 147 + .../ReadWriteDatabaseProperties.cs | 140 + .../ReadWriteDatabaseProperties.json.cs | 123 + .../Models/Api20220201/Script.PowerShell.cs | 278 + .../Api20220201/Script.TypeConverter.cs | 147 + .../api/Models/Api20220201/Script.cs | 317 + .../api/Models/Api20220201/Script.json.cs | 113 + .../ScriptCheckNameRequest.PowerShell.cs | 150 + .../ScriptCheckNameRequest.TypeConverter.cs | 147 + .../Api20220201/ScriptCheckNameRequest.cs | 71 + .../ScriptCheckNameRequest.json.cs | 108 + .../ScriptListResult.PowerShell.cs | 142 + .../ScriptListResult.TypeConverter.cs | 147 + .../Models/Api20220201/ScriptListResult.cs | 51 + .../Api20220201/ScriptListResult.json.cs | 114 + .../ScriptProperties.PowerShell.cs | 182 + .../ScriptProperties.TypeConverter.cs | 147 + .../Models/Api20220201/ScriptProperties.cs | 160 + .../Api20220201/ScriptProperties.json.cs | 119 + .../Api20220201/SkuDescription.PowerShell.cs | 182 + .../SkuDescription.TypeConverter.cs | 147 + .../api/Models/Api20220201/SkuDescription.cs | 154 + .../Models/Api20220201/SkuDescription.json.cs | 158 + .../SkuDescriptionList.PowerShell.cs | 142 + .../SkuDescriptionList.TypeConverter.cs | 147 + .../Models/Api20220201/SkuDescriptionList.cs | 54 + .../Api20220201/SkuDescriptionList.json.cs | 117 + .../SkuLocationInfoItem.PowerShell.cs | 150 + .../SkuLocationInfoItem.TypeConverter.cs | 147 + .../Models/Api20220201/SkuLocationInfoItem.cs | 68 + .../Api20220201/SkuLocationInfoItem.json.cs | 116 + .../TableLevelSharingProperties.PowerShell.cs | 182 + ...bleLevelSharingProperties.TypeConverter.cs | 147 + .../TableLevelSharingProperties.cs | 136 + .../TableLevelSharingProperties.json.cs | 164 + .../TrustedExternalTenant.PowerShell.cs | 142 + .../TrustedExternalTenant.TypeConverter.cs | 147 + .../Api20220201/TrustedExternalTenant.cs | 51 + .../Api20220201/TrustedExternalTenant.json.cs | 106 + .../VirtualNetworkConfiguration.PowerShell.cs | 158 + ...rtualNetworkConfiguration.TypeConverter.cs | 147 + .../VirtualNetworkConfiguration.cs | 85 + .../VirtualNetworkConfiguration.json.cs | 110 + .../api/Models/KustoIdentity.PowerShell.cs | 244 + .../api/Models/KustoIdentity.TypeConverter.cs | 157 + .../generated/api/Models/KustoIdentity.cs | 278 + .../api/Models/KustoIdentity.json.cs | 129 + .../api/Support/AzureScaleType.Completer.cs | 43 + .../Support/AzureScaleType.TypeConverter.cs | 59 + .../generated/api/Support/AzureScaleType.cs | 100 + .../api/Support/AzureSkuName.Completer.cs | 207 + .../api/Support/AzureSkuName.TypeConverter.cs | 59 + .../generated/api/Support/AzureSkuName.cs | 182 + .../api/Support/AzureSkuTier.Completer.cs | 39 + .../api/Support/AzureSkuTier.TypeConverter.cs | 59 + .../generated/api/Support/AzureSkuTier.cs | 98 + .../Support/BlobStorageEventType.Completer.cs | 39 + .../BlobStorageEventType.TypeConverter.cs | 59 + .../api/Support/BlobStorageEventType.cs | 98 + .../ClusterNetworkAccessFlag.Completer.cs | 41 + .../ClusterNetworkAccessFlag.TypeConverter.cs | 61 + .../api/Support/ClusterNetworkAccessFlag.cs | 100 + .../Support/ClusterPrincipalRole.Completer.cs | 39 + .../ClusterPrincipalRole.TypeConverter.cs | 59 + .../api/Support/ClusterPrincipalRole.cs | 98 + .../api/Support/Compression.Completer.cs | 39 + .../api/Support/Compression.TypeConverter.cs | 59 + .../generated/api/Support/Compression.cs | 98 + .../api/Support/CreatedByType.Completer.cs | 47 + .../Support/CreatedByType.TypeConverter.cs | 59 + .../generated/api/Support/CreatedByType.cs | 102 + .../Support/DataConnectionKind.Completer.cs | 43 + .../DataConnectionKind.TypeConverter.cs | 59 + .../api/Support/DataConnectionKind.cs | 100 + .../DatabasePrincipalRole.Completer.cs | 55 + .../DatabasePrincipalRole.TypeConverter.cs | 59 + .../api/Support/DatabasePrincipalRole.cs | 106 + .../DatabasePrincipalType.Completer.cs | 43 + .../DatabasePrincipalType.TypeConverter.cs | 59 + .../api/Support/DatabasePrincipalType.cs | 100 + .../api/Support/DatabaseRouting.Completer.cs | 42 + .../Support/DatabaseRouting.TypeConverter.cs | 62 + .../generated/api/Support/DatabaseRouting.cs | 101 + ...ultPrincipalsModificationKind.Completer.cs | 43 + ...rincipalsModificationKind.TypeConverter.cs | 59 + .../DefaultPrincipalsModificationKind.cs | 106 + .../api/Support/EngineType.Completer.cs | 39 + .../api/Support/EngineType.TypeConverter.cs | 59 + .../generated/api/Support/EngineType.cs | 98 + .../Support/EventGridDataFormat.Completer.cs | 97 + .../EventGridDataFormat.TypeConverter.cs | 61 + .../api/Support/EventGridDataFormat.cs | 128 + .../Support/EventHubDataFormat.Completer.cs | 97 + .../EventHubDataFormat.TypeConverter.cs | 61 + .../api/Support/EventHubDataFormat.cs | 128 + .../api/Support/IdentityType.Completer.cs | 50 + .../api/Support/IdentityType.TypeConverter.cs | 62 + .../generated/api/Support/IdentityType.cs | 105 + .../api/Support/IotHubDataFormat.Completer.cs | 97 + .../Support/IotHubDataFormat.TypeConverter.cs | 61 + .../generated/api/Support/IotHubDataFormat.cs | 128 + .../generated/api/Support/Kind.Completer.cs | 39 + .../api/Support/Kind.TypeConverter.cs | 59 + .../azure-kusto/generated/api/Support/Kind.cs | 98 + .../LanguageExtensionName.Completer.cs | 39 + .../LanguageExtensionName.TypeConverter.cs | 59 + .../api/Support/LanguageExtensionName.cs | 98 + .../api/Support/PrincipalType.Completer.cs | 43 + .../Support/PrincipalType.TypeConverter.cs | 59 + .../generated/api/Support/PrincipalType.cs | 100 + .../PrincipalsModificationKind.Completer.cs | 43 + ...rincipalsModificationKind.TypeConverter.cs | 59 + .../api/Support/PrincipalsModificationKind.cs | 102 + .../Support/ProvisioningState.Completer.cs | 55 + .../ProvisioningState.TypeConverter.cs | 59 + .../api/Support/ProvisioningState.cs | 106 + .../api/Support/PublicIPType.Completer.cs | 41 + .../api/Support/PublicIPType.TypeConverter.cs | 61 + .../generated/api/Support/PublicIPType.cs | 100 + .../Support/PublicNetworkAccess.Completer.cs | 42 + .../PublicNetworkAccess.TypeConverter.cs | 62 + .../api/Support/PublicNetworkAccess.cs | 101 + .../generated/api/Support/Reason.Completer.cs | 39 + .../api/Support/Reason.TypeConverter.cs | 59 + .../generated/api/Support/Reason.cs | 98 + .../generated/api/Support/State.Completer.cs | 67 + .../api/Support/State.TypeConverter.cs | 59 + .../generated/api/Support/State.cs | 112 + .../generated/api/Support/Status.Completer.cs | 47 + .../api/Support/Status.TypeConverter.cs | 59 + .../generated/api/Support/Status.cs | 102 + .../generated/api/Support/Type.Completer.cs | 39 + .../api/Support/Type.TypeConverter.cs | 59 + .../azure-kusto/generated/api/Support/Type.cs | 98 + .../AddAzKustoClusterLanguageExtension_Add.cs | 487 + ...stoClusterLanguageExtension_AddExpanded.cs | 492 + ...ClusterLanguageExtension_AddViaIdentity.cs | 463 + ...anguageExtension_AddViaIdentityExpanded.cs | 470 + .../AddAzKustoDatabasePrincipal_Add.cs | 430 + ...AddAzKustoDatabasePrincipal_AddExpanded.cs | 435 + ...AzKustoDatabasePrincipal_AddViaIdentity.cs | 399 + ...atabasePrincipal_AddViaIdentityExpanded.cs | 404 + ...zKustoAttachedDatabaseConfiguration_Get.cs | 417 + ...hedDatabaseConfiguration_GetViaIdentity.cs | 382 + ...KustoAttachedDatabaseConfiguration_List.cs | 405 + .../GetAzKustoClusterFollowerDatabase_List.cs | 408 + ...GetAzKustoClusterLanguageExtension_List.cs | 406 + ...rOutboundNetworkDependencyEndpoint_List.cs | 424 + ...etAzKustoClusterPrincipalAssignment_Get.cs | 416 + ...usterPrincipalAssignment_GetViaIdentity.cs | 382 + ...tAzKustoClusterPrincipalAssignment_List.cs | 403 + .../cmdlets/GetAzKustoClusterSku_List.cs | 375 + .../cmdlets/GetAzKustoClusterSku_List1.cs | 403 + .../cmdlets/GetAzKustoCluster_Get.cs | 403 + .../GetAzKustoCluster_GetViaIdentity.cs | 378 + .../cmdlets/GetAzKustoCluster_List.cs | 389 + .../cmdlets/GetAzKustoCluster_List1.cs | 375 + .../cmdlets/GetAzKustoDataConnection_Get.cs | 431 + ...GetAzKustoDataConnection_GetViaIdentity.cs | 386 + .../cmdlets/GetAzKustoDataConnection_List.cs | 417 + ...tAzKustoDatabasePrincipalAssignment_Get.cs | 430 + ...abasePrincipalAssignment_GetViaIdentity.cs | 386 + ...AzKustoDatabasePrincipalAssignment_List.cs | 417 + .../GetAzKustoDatabasePrincipal_List.cs | 420 + .../cmdlets/GetAzKustoDatabase_Get.cs | 417 + .../GetAzKustoDatabase_GetViaIdentity.cs | 382 + .../cmdlets/GetAzKustoDatabase_List.cs | 403 + .../GetAzKustoManagedPrivateEndpoint_Get.cs | 417 + ...toManagedPrivateEndpoint_GetViaIdentity.cs | 382 + .../GetAzKustoManagedPrivateEndpoint_List.cs | 403 + .../cmdlets/GetAzKustoOperation_List.cs | 373 + .../cmdlets/GetAzKustoOperationsResult_Get.cs | 402 + ...tAzKustoOperationsResult_GetViaIdentity.cs | 378 + ...GetAzKustoOperationsResultsLocation_Get.cs | 425 + ...perationsResultsLocation_GetViaIdentity.cs | 401 + ...GetAzKustoPrivateEndpointConnection_Get.cs | 417 + ...rivateEndpointConnection_GetViaIdentity.cs | 382 + ...etAzKustoPrivateEndpointConnection_List.cs | 403 + .../GetAzKustoPrivateLinkResource_Get.cs | 417 + ...KustoPrivateLinkResource_GetViaIdentity.cs | 382 + .../GetAzKustoPrivateLinkResource_List.cs | 403 + .../generated/cmdlets/GetAzKustoScript_Get.cs | 431 + .../GetAzKustoScript_GetViaIdentity.cs | 386 + .../cmdlets/GetAzKustoScript_List.cs | 417 + ...okeAzKustoDataConnectionValidation_Data.cs | 498 + ...toDataConnectionValidation_DataExpanded.cs | 525 + ...ataConnectionValidation_DataViaIdentity.cs | 463 + ...ctionValidation_DataViaIdentityExpanded.cs | 492 + ...stoDetachClusterFollowerDatabase_Detach.cs | 487 + ...hClusterFollowerDatabase_DetachExpanded.cs | 504 + ...usterFollowerDatabase_DetachViaIdentity.cs | 465 + ...lowerDatabase_DetachViaIdentityExpanded.cs | 481 + ...oDiagnoseClusterVirtualNetwork_Diagnose.cs | 471 + ...usterVirtualNetwork_DiagnoseViaIdentity.cs | 450 + ...hedDatabaseConfiguration_CreateExpanded.cs | 612 + ...usterPrincipalAssignment_CreateExpanded.cs | 538 + .../NewAzKustoCluster_CreateExpanded.cs | 907 + ...NewAzKustoDataConnection_CreateExpanded.cs | 529 + ...abasePrincipalAssignment_CreateExpanded.cs | 553 + .../NewAzKustoDatabase_CreateExpanded.cs | 514 + ...toManagedPrivateEndpoint_CreateExpanded.cs | 537 + ...rivateEndpointConnection_CreateExpanded.cs | 513 + .../NewAzKustoScript_CreateExpanded.cs | 568 + ...stoAttachedDatabaseConfiguration_Delete.cs | 523 + ...DatabaseConfiguration_DeleteViaIdentity.cs | 489 + ...eAzKustoClusterLanguageExtension_Remove.cs | 487 + ...ClusterLanguageExtension_RemoveExpanded.cs | 492 + ...sterLanguageExtension_RemoveViaIdentity.cs | 463 + ...uageExtension_RemoveViaIdentityExpanded.cs | 471 + ...zKustoClusterPrincipalAssignment_Delete.cs | 522 + ...erPrincipalAssignment_DeleteViaIdentity.cs | 489 + .../cmdlets/RemoveAzKustoCluster_Delete.cs | 508 + .../RemoveAzKustoCluster_DeleteViaIdentity.cs | 483 + .../RemoveAzKustoDataConnection_Delete.cs | 538 + ...AzKustoDataConnection_DeleteViaIdentity.cs | 491 + ...KustoDatabasePrincipalAssignment_Delete.cs | 537 + ...sePrincipalAssignment_DeleteViaIdentity.cs | 493 + .../RemoveAzKustoDatabasePrincipal_Remove.cs | 430 + ...AzKustoDatabasePrincipal_RemoveExpanded.cs | 435 + ...ustoDatabasePrincipal_RemoveViaIdentity.cs | 399 + ...basePrincipal_RemoveViaIdentityExpanded.cs | 404 + .../cmdlets/RemoveAzKustoDatabase_Delete.cs | 523 + ...RemoveAzKustoDatabase_DeleteViaIdentity.cs | 487 + ...oveAzKustoManagedPrivateEndpoint_Delete.cs | 523 + ...anagedPrivateEndpoint_DeleteViaIdentity.cs | 487 + ...AzKustoPrivateEndpointConnection_Delete.cs | 523 + ...ateEndpointConnection_DeleteViaIdentity.cs | 489 + .../cmdlets/RemoveAzKustoScript_Delete.cs | 538 + .../RemoveAzKustoScript_DeleteViaIdentity.cs | 491 + .../cmdlets/StartAzKustoCluster_Start.cs | 474 + .../StartAzKustoCluster_StartViaIdentity.cs | 449 + .../cmdlets/StopAzKustoCluster_Stop.cs | 474 + .../StopAzKustoCluster_StopViaIdentity.cs | 449 + ...baseConfigurationNameAvailability_Check.cs | 420 + ...igurationNameAvailability_CheckExpanded.cs | 424 + ...rationNameAvailability_CheckViaIdentity.cs | 399 + ...meAvailability_CheckViaIdentityExpanded.cs | 403 + ...estAzKustoClusterNameAvailability_Check.cs | 401 + ...toClusterNameAvailability_CheckExpanded.cs | 405 + ...lusterNameAvailability_CheckViaIdentity.cs | 390 + ...meAvailability_CheckViaIdentityExpanded.cs | 394 + ...incipalAssignmentNameAvailability_Check.cs | 415 + ...ssignmentNameAvailability_CheckExpanded.cs | 420 + ...gnmentNameAvailability_CheckViaIdentity.cs | 395 + ...meAvailability_CheckViaIdentityExpanded.cs | 399 + ...stoDataConnectionNameAvailability_Check.cs | 429 + ...onnectionNameAvailability_CheckExpanded.cs | 433 + ...ectionNameAvailability_CheckViaIdentity.cs | 398 + ...meAvailability_CheckViaIdentityExpanded.cs | 403 + ...stAzKustoDatabaseNameAvailability_Check.cs | 415 + ...oDatabaseNameAvailability_CheckExpanded.cs | 431 + ...tabaseNameAvailability_CheckViaIdentity.cs | 394 + ...meAvailability_CheckViaIdentityExpanded.cs | 410 + ...incipalAssignmentNameAvailability_Check.cs | 431 + ...ssignmentNameAvailability_CheckExpanded.cs | 436 + ...gnmentNameAvailability_CheckViaIdentity.cs | 401 + ...meAvailability_CheckViaIdentityExpanded.cs | 405 + ...edPrivateEndpointNameAvailability_Check.cs | 419 + ...eEndpointNameAvailability_CheckExpanded.cs | 424 + ...dpointNameAvailability_CheckViaIdentity.cs | 399 + ...meAvailability_CheckViaIdentityExpanded.cs | 403 + ...TestAzKustoScriptNameAvailability_Check.cs | 429 + ...stoScriptNameAvailability_CheckExpanded.cs | 433 + ...ScriptNameAvailability_CheckViaIdentity.cs | 398 + ...meAvailability_CheckViaIdentityExpanded.cs | 402 + .../UpdateAzKustoCluster_UpdateExpanded.cs | 877 + ...zKustoCluster_UpdateViaIdentityExpanded.cs | 852 + ...ateAzKustoDataConnection_UpdateExpanded.cs | 529 + ...ataConnection_UpdateViaIdentityExpanded.cs | 482 + .../UpdateAzKustoDatabase_UpdateExpanded.cs | 514 + ...KustoDatabase_UpdateViaIdentityExpanded.cs | 478 + ...toManagedPrivateEndpoint_UpdateExpanded.cs | 537 + ...ivateEndpoint_UpdateViaIdentityExpanded.cs | 503 + .../UpdateAzKustoScript_UpdateExpanded.cs | 568 + ...AzKustoScript_UpdateViaIdentityExpanded.cs | 521 + .../Az.Accounts/2.2.3/Accounts.format.ps1xml | 437 + .../2.2.3/Accounts.generated.format.ps1xml | 446 + .../Az.Accounts/2.2.3/Accounts.types.ps1xml | 281 + .../Az.Accounts/2.2.3/Az.Accounts.nuspec | 19 + .../Az.Accounts/2.2.3/Az.Accounts.psd1 | 362 + .../Az.Accounts/2.2.3/Az.Accounts.psm1 | 339 + .../modules/Az.Accounts/2.2.3/Hyak.Common.dll | Bin 0 -> 63880 bytes .../2.2.3/Microsoft.ApplicationInsights.dll | Bin 0 -> 179960 bytes .../2.2.3/Microsoft.Azure.Common.dll | Bin 0 -> 35720 bytes ...PowerShell.Authentication.Abstractions.dll | Bin 0 -> 108424 bytes ...l.Authentication.ResourceManager.deps.json | 2383 +++ ...erShell.Authentication.ResourceManager.dll | Bin 0 -> 78720 bytes ....Azure.PowerShell.Authentication.deps.json | 2348 +++ ...rosoft.Azure.PowerShell.Authentication.dll | Bin 0 -> 122760 bytes ...rosoft.Azure.PowerShell.Authenticators.dll | Bin 0 -> 37256 bytes ...Microsoft.Azure.PowerShell.Clients.Aks.dll | Bin 0 -> 88968 bytes ...Azure.PowerShell.Clients.Authorization.dll | Bin 0 -> 149896 bytes ...osoft.Azure.PowerShell.Clients.Compute.dll | Bin 0 -> 1418624 bytes ...ft.Azure.PowerShell.Clients.Graph.Rbac.dll | Bin 0 -> 578440 bytes ...soft.Azure.PowerShell.Clients.KeyVault.dll | Bin 0 -> 121736 bytes ...osoft.Azure.PowerShell.Clients.Monitor.dll | Bin 0 -> 412552 bytes ...osoft.Azure.PowerShell.Clients.Network.dll | Bin 0 -> 1687432 bytes ...zure.PowerShell.Clients.PolicyInsights.dll | Bin 0 -> 177032 bytes ...ure.PowerShell.Clients.ResourceManager.dll | Bin 0 -> 1158024 bytes ....PowerShell.Clients.Storage.Management.dll | Bin 0 -> 132488 bytes ...soft.Azure.PowerShell.Clients.Websites.dll | Bin 0 -> 3271048 bytes ...zure.PowerShell.Cmdlets.Accounts.deps.json | 2486 +++ ...soft.Azure.PowerShell.Cmdlets.Accounts.dll | Bin 0 -> 430984 bytes ...e.PowerShell.Cmdlets.Accounts.dll-Help.xml | 11075 +++++++++++ .../Microsoft.Azure.PowerShell.Common.dll | Bin 0 -> 255360 bytes .../Microsoft.Azure.PowerShell.Storage.dll | Bin 0 -> 19336 bytes .../Microsoft.Azure.PowerShell.Strategies.dll | Bin 0 -> 64392 bytes .../Microsoft.Rest.ClientRuntime.Azure.dll | Bin 0 -> 97872 bytes .../2.2.3/Microsoft.Rest.ClientRuntime.dll | Bin 0 -> 79736 bytes ...soft.WindowsAzure.Storage.DataMovement.dll | Bin 0 -> 302784 bytes .../2.2.3/Microsoft.WindowsAzure.Storage.dll | Bin 0 -> 784496 bytes .../2.2.3/NetCoreAssemblies/Azure.Core.dll | Bin 0 -> 151936 bytes .../NetCoreAssemblies/Azure.Identity.dll | Bin 0 -> 216960 bytes .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 20856 bytes ...rosoft.Identity.Client.Extensions.Msal.dll | Bin 0 -> 54648 bytes .../Microsoft.Identity.Client.dll | Bin 0 -> 1310664 bytes .../NetCoreAssemblies/System.Memory.Data.dll | Bin 0 -> 21384 bytes .../System.Numerics.Vectors.dll | Bin 0 -> 163464 bytes ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 18808 bytes .../System.Text.Encodings.Web.dll | Bin 0 -> 99192 bytes .../NetCoreAssemblies/System.Text.Json.dll | Bin 0 -> 294264 bytes .../System.Threading.Tasks.Extensions.dll | Bin 0 -> 14712 bytes .../PostImportScripts/LoadAuthenticators.ps1 | 197 + .../2.2.3/PreloadAssemblies/Azure.Core.dll | Bin 0 -> 160136 bytes .../PreloadAssemblies/Azure.Identity.dll | Bin 0 -> 216960 bytes ...rosoft.Azure.PowerShell.Authenticators.dll | Bin 0 -> 37256 bytes .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 20856 bytes ...rosoft.Identity.Client.Extensions.Msal.dll | Bin 0 -> 54136 bytes .../Microsoft.Identity.Client.dll | Bin 0 -> 1377736 bytes .../Newtonsoft.Json.12.0.3.dll | Bin 0 -> 701336 bytes .../PreloadAssemblies/Newtonsoft.Json.dll | Bin 0 -> 662936 bytes .../PreloadAssemblies/System.Buffers.dll | Bin 0 -> 28304 bytes .../System.Diagnostics.DiagnosticSource.dll | Bin 0 -> 49528 bytes .../PreloadAssemblies/System.Memory.Data.dll | Bin 0 -> 21384 bytes .../2.2.3/PreloadAssemblies/System.Memory.dll | Bin 0 -> 148760 bytes .../System.Net.Http.WinHttpHandler.dll | Bin 0 -> 117656 bytes .../System.Numerics.Vectors.dll | Bin 0 -> 163712 bytes .../System.Private.ServiceModel.dll | Bin 0 -> 1893240 bytes .../System.Reflection.DispatchProxy.dll | Bin 0 -> 24992 bytes ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 16760 bytes .../System.Security.AccessControl.dll | Bin 0 -> 54416 bytes .../System.Security.Cryptography.Cng.dll | Bin 0 -> 23976 bytes .../System.Security.Permissions.dll | Bin 0 -> 96400 bytes .../System.Security.Principal.Windows.dll | Bin 0 -> 39056 bytes .../System.ServiceModel.Primitives.dll | Bin 0 -> 28552 bytes .../System.Text.Encodings.Web.dll | Bin 0 -> 57720 bytes .../PreloadAssemblies/System.Text.Json.dll | Bin 0 -> 294264 bytes .../System.Threading.Tasks.Extensions.dll | Bin 0 -> 32904 bytes .../System.Xml.ReaderWriter.dll | Bin 0 -> 606592 bytes .../2.2.3/StartupScripts/AzError.ps1 | 256 + .../InitializeAssemblyResolver.ps1 | 199 + .../Az.Accounts/2.2.3/[Content_Types].xml | 13 + .../modules/Az.Accounts/2.2.3/_rels/.rels | 5 + .../a81ca9a9339b4bd291ed0d31ee492ddd.psmdcp | 11 + .../generated/runtime/AsyncCommandRuntime.cs | 832 + .../azure-kusto/generated/runtime/AsyncJob.cs | 270 + .../runtime/AsyncOperationResponse.cs | 177 + .../BuildTime/Cmdlets/ExportCmdletSurface.cs | 113 + .../BuildTime/Cmdlets/ExportExampleStub.cs | 74 + .../BuildTime/Cmdlets/ExportFormatPs1xml.cs | 101 + .../BuildTime/Cmdlets/ExportHelpMarkdown.cs | 53 + .../BuildTime/Cmdlets/ExportModelSurface.cs | 117 + .../BuildTime/Cmdlets/ExportProxyCmdlet.cs | 169 + .../runtime/BuildTime/Cmdlets/ExportPsd1.cs | 191 + .../BuildTime/Cmdlets/ExportTestStub.cs | 148 + .../BuildTime/Cmdlets/GetCommonParameter.cs | 52 + .../BuildTime/Cmdlets/GetModuleGuid.cs | 31 + .../BuildTime/Cmdlets/GetScriptCmdlet.cs | 54 + .../runtime/BuildTime/CollectionExtensions.cs | 20 + .../runtime/BuildTime/MarkdownRenderer.cs | 114 + .../runtime/BuildTime/Models/PsFormatTypes.cs | 138 + .../BuildTime/Models/PsHelpMarkdownOutputs.cs | 177 + .../runtime/BuildTime/Models/PsHelpTypes.cs | 199 + .../BuildTime/Models/PsMarkdownTypes.cs | 287 + .../BuildTime/Models/PsProxyOutputs.cs | 531 + .../runtime/BuildTime/Models/PsProxyTypes.cs | 514 + .../runtime/BuildTime/PsAttributes.cs | 114 + .../runtime/BuildTime/PsExtensions.cs | 169 + .../generated/runtime/BuildTime/PsHelpers.cs | 104 + .../runtime/BuildTime/StringExtensions.cs | 24 + .../runtime/BuildTime/XmlExtensions.cs | 28 + .../generated/runtime/CmdInfoHandler.cs | 40 + .../Conversions/ConversionException.cs | 17 + .../runtime/Conversions/IJsonConverter.cs | 13 + .../Conversions/Instances/BinaryConverter.cs | 24 + .../Conversions/Instances/BooleanConverter.cs | 13 + .../Instances/DateTimeConverter.cs | 18 + .../Instances/DateTimeOffsetConverter.cs | 15 + .../Conversions/Instances/DecimalConverter.cs | 16 + .../Conversions/Instances/DoubleConverter.cs | 13 + .../Conversions/Instances/EnumConverter.cs | 30 + .../Conversions/Instances/GuidConverter.cs | 15 + .../Instances/HashSet'1Converter.cs | 27 + .../Conversions/Instances/Int16Converter.cs | 13 + .../Conversions/Instances/Int32Converter.cs | 13 + .../Conversions/Instances/Int64Converter.cs | 13 + .../Instances/JsonArrayConverter.cs | 13 + .../Instances/JsonObjectConverter.cs | 13 + .../Conversions/Instances/SingleConverter.cs | 13 + .../Conversions/Instances/StringConverter.cs | 13 + .../Instances/TimeSpanConverter.cs | 15 + .../Conversions/Instances/UInt16Converter.cs | 13 + .../Conversions/Instances/UInt32Converter.cs | 13 + .../Conversions/Instances/UInt64Converter.cs | 13 + .../Conversions/Instances/UriConverter.cs | 15 + .../runtime/Conversions/JsonConverter.cs | 21 + .../Conversions/JsonConverterAttribute.cs | 18 + .../Conversions/JsonConverterFactory.cs | 91 + .../Conversions/StringLikeConverter.cs | 45 + .../Customizations/IJsonSerializable.cs | 263 + .../runtime/Customizations/JsonArray.cs | 13 + .../runtime/Customizations/JsonBoolean.cs | 16 + .../runtime/Customizations/JsonNode.cs | 21 + .../runtime/Customizations/JsonNumber.cs | 78 + .../runtime/Customizations/JsonObject.cs | 183 + .../runtime/Customizations/JsonString.cs | 34 + .../runtime/Customizations/XNodeArray.cs | 44 + .../generated/runtime/Debugging.cs | 28 + .../generated/runtime/DictionaryExtensions.cs | 33 + .../generated/runtime/EventData.cs | 78 + .../generated/runtime/EventDataExtensions.cs | 94 + .../generated/runtime/EventListener.cs | 247 + .../azure-kusto/generated/runtime/Events.cs | 27 + .../generated/runtime/EventsExtensions.cs | 27 + .../generated/runtime/Extensions.cs | 117 + .../Extensions/StringBuilderExtensions.cs | 23 + .../Helpers/Extensions/TypeExtensions.cs | 61 + .../generated/runtime/Helpers/Seperator.cs | 11 + .../generated/runtime/Helpers/TypeDetails.cs | 116 + .../generated/runtime/Helpers/XHelper.cs | 75 + .../generated/runtime/HttpPipeline.cs | 88 + .../generated/runtime/HttpPipelineMocking.ps1 | 110 + .../generated/runtime/IAssociativeArray.cs | 24 + .../generated/runtime/IHeaderSerializable.cs | 14 + .../generated/runtime/ISendAsync.cs | 296 + .../generated/runtime/InfoAttribute.cs | 34 + .../generated/runtime/Iso/IsoDate.cs | 214 + .../azure-kusto/generated/runtime/JsonType.cs | 18 + .../generated/runtime/MessageAttribute.cs | 360 + .../runtime/MessageAttributeHelper.cs | 161 + .../azure-kusto/generated/runtime/Method.cs | 19 + .../generated/runtime/Models/JsonMember.cs | 83 + .../generated/runtime/Models/JsonModel.cs | 89 + .../runtime/Models/JsonModelCache.cs | 19 + .../runtime/Nodes/Collections/JsonArray.cs | 65 + .../Nodes/Collections/XImmutableArray.cs | 62 + .../runtime/Nodes/Collections/XList.cs | 64 + .../runtime/Nodes/Collections/XNodeArray.cs | 68 + .../runtime/Nodes/Collections/XSet.cs | 60 + .../generated/runtime/Nodes/JsonBoolean.cs | 42 + .../generated/runtime/Nodes/JsonDate.cs | 173 + .../generated/runtime/Nodes/JsonNode.cs | 250 + .../generated/runtime/Nodes/JsonNumber.cs | 109 + .../generated/runtime/Nodes/JsonObject.cs | 172 + .../generated/runtime/Nodes/JsonString.cs | 42 + .../generated/runtime/Nodes/XBinary.cs | 40 + .../generated/runtime/Nodes/XNull.cs | 15 + .../Parser/Exceptions/ParseException.cs | 24 + .../generated/runtime/Parser/JsonParser.cs | 180 + .../generated/runtime/Parser/JsonToken.cs | 66 + .../generated/runtime/Parser/JsonTokenizer.cs | 177 + .../generated/runtime/Parser/Location.cs | 43 + .../runtime/Parser/Readers/SourceReader.cs | 130 + .../generated/runtime/Parser/TokenReader.cs | 39 + .../generated/runtime/PipelineMocking.cs | 262 + .../runtime/Properties/Resources.Designer.cs | 5633 ++++++ .../runtime/Properties/Resources.resx | 1741 ++ .../azure-kusto/generated/runtime/Response.cs | 27 + .../runtime/Serialization/JsonSerializer.cs | 350 + .../Serialization/PropertyTransformation.cs | 21 + .../Serialization/SerializationOptions.cs | 65 + .../generated/runtime/SerializationMode.cs | 16 + .../runtime/TypeConverterExtensions.cs | 211 + .../runtime/UndeclaredResponseException.cs | 112 + .../generated/runtime/Writers/JsonWriter.cs | 223 + .../generated/runtime/delegates.cs | 23 + swaggerci/azure-kusto/how-to.md | 58 + .../internal/Az.Kusto.internal.psm1 | 38 + .../internal/Get-AzKustoOperation.ps1 | 115 + .../internal/ProxyCmdletDefinitions.ps1 | 115 + swaggerci/azure-kusto/internal/README.md | 14 + swaggerci/azure-kusto/license.txt | 227 + swaggerci/azure-kusto/pack-module.ps1 | 9 + swaggerci/azure-kusto/readme.md | 10 + swaggerci/azure-kusto/resources/README.md | 11 + swaggerci/azure-kusto/run-module.ps1 | 54 + swaggerci/azure-kusto/test-module.ps1 | 86 + ...-AzKustoClusterLanguageExtension.Tests.ps1 | 33 + .../Add-AzKustoDatabasePrincipal.Tests.ps1 | 33 + ...stoAttachedDatabaseConfiguration.Tests.ps1 | 29 + .../test/Get-AzKustoCluster.Tests.ps1 | 33 + ...t-AzKustoClusterFollowerDatabase.Tests.ps1 | 21 + ...-AzKustoClusterLanguageExtension.Tests.ps1 | 21 + ...utboundNetworkDependencyEndpoint.Tests.ps1 | 21 + ...zKustoClusterPrincipalAssignment.Tests.ps1 | 29 + .../test/Get-AzKustoClusterSku.Tests.ps1 | 25 + .../test/Get-AzKustoDataConnection.Tests.ps1 | 29 + .../test/Get-AzKustoDatabase.Tests.ps1 | 29 + .../Get-AzKustoDatabasePrincipal.Tests.ps1 | 21 + ...KustoDatabasePrincipalAssignment.Tests.ps1 | 29 + ...et-AzKustoManagedPrivateEndpoint.Tests.ps1 | 29 + .../Get-AzKustoOperationsResult.Tests.ps1 | 25 + ...AzKustoOperationsResultsLocation.Tests.ps1 | 25 + ...AzKustoPrivateEndpointConnection.Tests.ps1 | 29 + .../Get-AzKustoPrivateLinkResource.Tests.ps1 | 29 + .../test/Get-AzKustoScript.Tests.ps1 | 29 + ...-AzKustoDataConnectionValidation.Tests.ps1 | 33 + ...stoDetachClusterFollowerDatabase.Tests.ps1 | 33 + ...stoDiagnoseClusterVirtualNetwork.Tests.ps1 | 25 + ...stoAttachedDatabaseConfiguration.Tests.ps1 | 21 + .../test/New-AzKustoCluster.Tests.ps1 | 21 + ...zKustoClusterPrincipalAssignment.Tests.ps1 | 21 + .../test/New-AzKustoDataConnection.Tests.ps1 | 21 + .../test/New-AzKustoDatabase.Tests.ps1 | 21 + ...KustoDatabasePrincipalAssignment.Tests.ps1 | 21 + ...ew-AzKustoManagedPrivateEndpoint.Tests.ps1 | 21 + ...AzKustoPrivateEndpointConnection.Tests.ps1 | 21 + .../test/New-AzKustoScript.Tests.ps1 | 21 + swaggerci/azure-kusto/test/README.md | 17 + ...stoAttachedDatabaseConfiguration.Tests.ps1 | 25 + .../test/Remove-AzKustoCluster.Tests.ps1 | 25 + ...-AzKustoClusterLanguageExtension.Tests.ps1 | 33 + ...zKustoClusterPrincipalAssignment.Tests.ps1 | 25 + .../Remove-AzKustoDataConnection.Tests.ps1 | 25 + .../test/Remove-AzKustoDatabase.Tests.ps1 | 25 + .../Remove-AzKustoDatabasePrincipal.Tests.ps1 | 33 + ...KustoDatabasePrincipalAssignment.Tests.ps1 | 25 + ...ve-AzKustoManagedPrivateEndpoint.Tests.ps1 | 25 + ...AzKustoPrivateEndpointConnection.Tests.ps1 | 25 + .../test/Remove-AzKustoScript.Tests.ps1 | 25 + .../test/Start-AzKustoCluster.Tests.ps1 | 25 + .../test/Stop-AzKustoCluster.Tests.ps1 | 25 + ...aseConfigurationNameAvailability.Tests.ps1 | 33 + ...t-AzKustoClusterNameAvailability.Tests.ps1 | 33 + ...ncipalAssignmentNameAvailability.Tests.ps1 | 33 + ...toDataConnectionNameAvailability.Tests.ps1 | 33 + ...-AzKustoDatabaseNameAvailability.Tests.ps1 | 33 + ...ncipalAssignmentNameAvailability.Tests.ps1 | 33 + ...dPrivateEndpointNameAvailability.Tests.ps1 | 33 + ...st-AzKustoScriptNameAvailability.Tests.ps1 | 33 + .../test/Update-AzKustoCluster.Tests.ps1 | 25 + .../Update-AzKustoDataConnection.Tests.ps1 | 25 + .../test/Update-AzKustoDatabase.Tests.ps1 | 25 + ...te-AzKustoManagedPrivateEndpoint.Tests.ps1 | 25 + .../test/Update-AzKustoScript.Tests.ps1 | 25 + swaggerci/azure-kusto/test/loadEnv.ps1 | 21 + swaggerci/azure-kusto/test/utils.ps1 | 31 + .../utils/Unprotect-SecureString.ps1 | 16 + 1093 files changed, 229545 insertions(+) create mode 100644 swaggerci/azure-kusto/.gitattributes create mode 100644 swaggerci/azure-kusto/.gitignore create mode 100644 swaggerci/azure-kusto/Az.Kusto.csproj create mode 100644 swaggerci/azure-kusto/Az.Kusto.format.ps1xml create mode 100644 swaggerci/azure-kusto/Az.Kusto.nuspec create mode 100644 swaggerci/azure-kusto/Az.Kusto.psd1 create mode 100644 swaggerci/azure-kusto/Az.Kusto.psm1 create mode 100644 swaggerci/azure-kusto/MSSharedLibKey.snk create mode 100644 swaggerci/azure-kusto/README.md create mode 100644 swaggerci/azure-kusto/build-module.ps1 create mode 100644 swaggerci/azure-kusto/check-dependencies.ps1 create mode 100644 swaggerci/azure-kusto/create-model-cmdlets.ps1 create mode 100644 swaggerci/azure-kusto/custom/Az.Kusto.custom.psm1 create mode 100644 swaggerci/azure-kusto/custom/README.md create mode 100644 swaggerci/azure-kusto/docs/Add-AzKustoClusterLanguageExtension.md create mode 100644 swaggerci/azure-kusto/docs/Add-AzKustoDatabasePrincipal.md create mode 100644 swaggerci/azure-kusto/docs/Az.Kusto.md create mode 100644 swaggerci/azure-kusto/docs/Get-AzKustoAttachedDatabaseConfiguration.md create mode 100644 swaggerci/azure-kusto/docs/Get-AzKustoCluster.md create mode 100644 swaggerci/azure-kusto/docs/Get-AzKustoClusterFollowerDatabase.md create mode 100644 swaggerci/azure-kusto/docs/Get-AzKustoClusterLanguageExtension.md create mode 100644 swaggerci/azure-kusto/docs/Get-AzKustoClusterOutboundNetworkDependencyEndpoint.md create mode 100644 swaggerci/azure-kusto/docs/Get-AzKustoClusterPrincipalAssignment.md create mode 100644 swaggerci/azure-kusto/docs/Get-AzKustoClusterSku.md create mode 100644 swaggerci/azure-kusto/docs/Get-AzKustoDataConnection.md create mode 100644 swaggerci/azure-kusto/docs/Get-AzKustoDatabase.md create mode 100644 swaggerci/azure-kusto/docs/Get-AzKustoDatabasePrincipal.md create mode 100644 swaggerci/azure-kusto/docs/Get-AzKustoDatabasePrincipalAssignment.md create mode 100644 swaggerci/azure-kusto/docs/Get-AzKustoManagedPrivateEndpoint.md create mode 100644 swaggerci/azure-kusto/docs/Get-AzKustoOperationsResult.md create mode 100644 swaggerci/azure-kusto/docs/Get-AzKustoOperationsResultsLocation.md create mode 100644 swaggerci/azure-kusto/docs/Get-AzKustoPrivateEndpointConnection.md create mode 100644 swaggerci/azure-kusto/docs/Get-AzKustoPrivateLinkResource.md create mode 100644 swaggerci/azure-kusto/docs/Get-AzKustoScript.md create mode 100644 swaggerci/azure-kusto/docs/Invoke-AzKustoDataConnectionValidation.md create mode 100644 swaggerci/azure-kusto/docs/Invoke-AzKustoDetachClusterFollowerDatabase.md create mode 100644 swaggerci/azure-kusto/docs/Invoke-AzKustoDiagnoseClusterVirtualNetwork.md create mode 100644 swaggerci/azure-kusto/docs/New-AzKustoAttachedDatabaseConfiguration.md create mode 100644 swaggerci/azure-kusto/docs/New-AzKustoCluster.md create mode 100644 swaggerci/azure-kusto/docs/New-AzKustoClusterPrincipalAssignment.md create mode 100644 swaggerci/azure-kusto/docs/New-AzKustoDataConnection.md create mode 100644 swaggerci/azure-kusto/docs/New-AzKustoDatabase.md create mode 100644 swaggerci/azure-kusto/docs/New-AzKustoDatabasePrincipalAssignment.md create mode 100644 swaggerci/azure-kusto/docs/New-AzKustoManagedPrivateEndpoint.md create mode 100644 swaggerci/azure-kusto/docs/New-AzKustoPrivateEndpointConnection.md create mode 100644 swaggerci/azure-kusto/docs/New-AzKustoScript.md create mode 100644 swaggerci/azure-kusto/docs/README.md create mode 100644 swaggerci/azure-kusto/docs/Remove-AzKustoAttachedDatabaseConfiguration.md create mode 100644 swaggerci/azure-kusto/docs/Remove-AzKustoCluster.md create mode 100644 swaggerci/azure-kusto/docs/Remove-AzKustoClusterLanguageExtension.md create mode 100644 swaggerci/azure-kusto/docs/Remove-AzKustoClusterPrincipalAssignment.md create mode 100644 swaggerci/azure-kusto/docs/Remove-AzKustoDataConnection.md create mode 100644 swaggerci/azure-kusto/docs/Remove-AzKustoDatabase.md create mode 100644 swaggerci/azure-kusto/docs/Remove-AzKustoDatabasePrincipal.md create mode 100644 swaggerci/azure-kusto/docs/Remove-AzKustoDatabasePrincipalAssignment.md create mode 100644 swaggerci/azure-kusto/docs/Remove-AzKustoManagedPrivateEndpoint.md create mode 100644 swaggerci/azure-kusto/docs/Remove-AzKustoPrivateEndpointConnection.md create mode 100644 swaggerci/azure-kusto/docs/Remove-AzKustoScript.md create mode 100644 swaggerci/azure-kusto/docs/Start-AzKustoCluster.md create mode 100644 swaggerci/azure-kusto/docs/Stop-AzKustoCluster.md create mode 100644 swaggerci/azure-kusto/docs/Test-AzKustoAttachedDatabaseConfigurationNameAvailability.md create mode 100644 swaggerci/azure-kusto/docs/Test-AzKustoClusterNameAvailability.md create mode 100644 swaggerci/azure-kusto/docs/Test-AzKustoClusterPrincipalAssignmentNameAvailability.md create mode 100644 swaggerci/azure-kusto/docs/Test-AzKustoDataConnectionNameAvailability.md create mode 100644 swaggerci/azure-kusto/docs/Test-AzKustoDatabaseNameAvailability.md create mode 100644 swaggerci/azure-kusto/docs/Test-AzKustoDatabasePrincipalAssignmentNameAvailability.md create mode 100644 swaggerci/azure-kusto/docs/Test-AzKustoManagedPrivateEndpointNameAvailability.md create mode 100644 swaggerci/azure-kusto/docs/Test-AzKustoScriptNameAvailability.md create mode 100644 swaggerci/azure-kusto/docs/Update-AzKustoCluster.md create mode 100644 swaggerci/azure-kusto/docs/Update-AzKustoDataConnection.md create mode 100644 swaggerci/azure-kusto/docs/Update-AzKustoDatabase.md create mode 100644 swaggerci/azure-kusto/docs/Update-AzKustoManagedPrivateEndpoint.md create mode 100644 swaggerci/azure-kusto/docs/Update-AzKustoScript.md create mode 100644 swaggerci/azure-kusto/examples/Add-AzKustoClusterLanguageExtension.md create mode 100644 swaggerci/azure-kusto/examples/Add-AzKustoDatabasePrincipal.md create mode 100644 swaggerci/azure-kusto/examples/Get-AzKustoAttachedDatabaseConfiguration.md create mode 100644 swaggerci/azure-kusto/examples/Get-AzKustoCluster.md create mode 100644 swaggerci/azure-kusto/examples/Get-AzKustoClusterFollowerDatabase.md create mode 100644 swaggerci/azure-kusto/examples/Get-AzKustoClusterLanguageExtension.md create mode 100644 swaggerci/azure-kusto/examples/Get-AzKustoClusterOutboundNetworkDependencyEndpoint.md create mode 100644 swaggerci/azure-kusto/examples/Get-AzKustoClusterPrincipalAssignment.md create mode 100644 swaggerci/azure-kusto/examples/Get-AzKustoClusterSku.md create mode 100644 swaggerci/azure-kusto/examples/Get-AzKustoDataConnection.md create mode 100644 swaggerci/azure-kusto/examples/Get-AzKustoDatabase.md create mode 100644 swaggerci/azure-kusto/examples/Get-AzKustoDatabasePrincipal.md create mode 100644 swaggerci/azure-kusto/examples/Get-AzKustoDatabasePrincipalAssignment.md create mode 100644 swaggerci/azure-kusto/examples/Get-AzKustoManagedPrivateEndpoint.md create mode 100644 swaggerci/azure-kusto/examples/Get-AzKustoOperationsResult.md create mode 100644 swaggerci/azure-kusto/examples/Get-AzKustoOperationsResultsLocation.md create mode 100644 swaggerci/azure-kusto/examples/Get-AzKustoPrivateEndpointConnection.md create mode 100644 swaggerci/azure-kusto/examples/Get-AzKustoPrivateLinkResource.md create mode 100644 swaggerci/azure-kusto/examples/Get-AzKustoScript.md create mode 100644 swaggerci/azure-kusto/examples/Invoke-AzKustoDataConnectionValidation.md create mode 100644 swaggerci/azure-kusto/examples/Invoke-AzKustoDetachClusterFollowerDatabase.md create mode 100644 swaggerci/azure-kusto/examples/Invoke-AzKustoDiagnoseClusterVirtualNetwork.md create mode 100644 swaggerci/azure-kusto/examples/New-AzKustoAttachedDatabaseConfiguration.md create mode 100644 swaggerci/azure-kusto/examples/New-AzKustoCluster.md create mode 100644 swaggerci/azure-kusto/examples/New-AzKustoClusterPrincipalAssignment.md create mode 100644 swaggerci/azure-kusto/examples/New-AzKustoDataConnection.md create mode 100644 swaggerci/azure-kusto/examples/New-AzKustoDatabase.md create mode 100644 swaggerci/azure-kusto/examples/New-AzKustoDatabasePrincipalAssignment.md create mode 100644 swaggerci/azure-kusto/examples/New-AzKustoManagedPrivateEndpoint.md create mode 100644 swaggerci/azure-kusto/examples/New-AzKustoPrivateEndpointConnection.md create mode 100644 swaggerci/azure-kusto/examples/New-AzKustoScript.md create mode 100644 swaggerci/azure-kusto/examples/Remove-AzKustoAttachedDatabaseConfiguration.md create mode 100644 swaggerci/azure-kusto/examples/Remove-AzKustoCluster.md create mode 100644 swaggerci/azure-kusto/examples/Remove-AzKustoClusterLanguageExtension.md create mode 100644 swaggerci/azure-kusto/examples/Remove-AzKustoClusterPrincipalAssignment.md create mode 100644 swaggerci/azure-kusto/examples/Remove-AzKustoDataConnection.md create mode 100644 swaggerci/azure-kusto/examples/Remove-AzKustoDatabase.md create mode 100644 swaggerci/azure-kusto/examples/Remove-AzKustoDatabasePrincipal.md create mode 100644 swaggerci/azure-kusto/examples/Remove-AzKustoDatabasePrincipalAssignment.md create mode 100644 swaggerci/azure-kusto/examples/Remove-AzKustoManagedPrivateEndpoint.md create mode 100644 swaggerci/azure-kusto/examples/Remove-AzKustoPrivateEndpointConnection.md create mode 100644 swaggerci/azure-kusto/examples/Remove-AzKustoScript.md create mode 100644 swaggerci/azure-kusto/examples/Start-AzKustoCluster.md create mode 100644 swaggerci/azure-kusto/examples/Stop-AzKustoCluster.md create mode 100644 swaggerci/azure-kusto/examples/Test-AzKustoAttachedDatabaseConfigurationNameAvailability.md create mode 100644 swaggerci/azure-kusto/examples/Test-AzKustoClusterNameAvailability.md create mode 100644 swaggerci/azure-kusto/examples/Test-AzKustoClusterPrincipalAssignmentNameAvailability.md create mode 100644 swaggerci/azure-kusto/examples/Test-AzKustoDataConnectionNameAvailability.md create mode 100644 swaggerci/azure-kusto/examples/Test-AzKustoDatabaseNameAvailability.md create mode 100644 swaggerci/azure-kusto/examples/Test-AzKustoDatabasePrincipalAssignmentNameAvailability.md create mode 100644 swaggerci/azure-kusto/examples/Test-AzKustoManagedPrivateEndpointNameAvailability.md create mode 100644 swaggerci/azure-kusto/examples/Test-AzKustoScriptNameAvailability.md create mode 100644 swaggerci/azure-kusto/examples/Update-AzKustoCluster.md create mode 100644 swaggerci/azure-kusto/examples/Update-AzKustoDataConnection.md create mode 100644 swaggerci/azure-kusto/examples/Update-AzKustoDatabase.md create mode 100644 swaggerci/azure-kusto/examples/Update-AzKustoManagedPrivateEndpoint.md create mode 100644 swaggerci/azure-kusto/examples/Update-AzKustoScript.md create mode 100644 swaggerci/azure-kusto/export-surface.ps1 create mode 100644 swaggerci/azure-kusto/exports/Add-AzKustoClusterLanguageExtension.ps1 create mode 100644 swaggerci/azure-kusto/exports/Add-AzKustoDatabasePrincipal.ps1 create mode 100644 swaggerci/azure-kusto/exports/Get-AzKustoAttachedDatabaseConfiguration.ps1 create mode 100644 swaggerci/azure-kusto/exports/Get-AzKustoCluster.ps1 create mode 100644 swaggerci/azure-kusto/exports/Get-AzKustoClusterFollowerDatabase.ps1 create mode 100644 swaggerci/azure-kusto/exports/Get-AzKustoClusterLanguageExtension.ps1 create mode 100644 swaggerci/azure-kusto/exports/Get-AzKustoClusterOutboundNetworkDependencyEndpoint.ps1 create mode 100644 swaggerci/azure-kusto/exports/Get-AzKustoClusterPrincipalAssignment.ps1 create mode 100644 swaggerci/azure-kusto/exports/Get-AzKustoClusterSku.ps1 create mode 100644 swaggerci/azure-kusto/exports/Get-AzKustoDataConnection.ps1 create mode 100644 swaggerci/azure-kusto/exports/Get-AzKustoDatabase.ps1 create mode 100644 swaggerci/azure-kusto/exports/Get-AzKustoDatabasePrincipal.ps1 create mode 100644 swaggerci/azure-kusto/exports/Get-AzKustoDatabasePrincipalAssignment.ps1 create mode 100644 swaggerci/azure-kusto/exports/Get-AzKustoManagedPrivateEndpoint.ps1 create mode 100644 swaggerci/azure-kusto/exports/Get-AzKustoOperationsResult.ps1 create mode 100644 swaggerci/azure-kusto/exports/Get-AzKustoOperationsResultsLocation.ps1 create mode 100644 swaggerci/azure-kusto/exports/Get-AzKustoPrivateEndpointConnection.ps1 create mode 100644 swaggerci/azure-kusto/exports/Get-AzKustoPrivateLinkResource.ps1 create mode 100644 swaggerci/azure-kusto/exports/Get-AzKustoScript.ps1 create mode 100644 swaggerci/azure-kusto/exports/Invoke-AzKustoDataConnectionValidation.ps1 create mode 100644 swaggerci/azure-kusto/exports/Invoke-AzKustoDetachClusterFollowerDatabase.ps1 create mode 100644 swaggerci/azure-kusto/exports/Invoke-AzKustoDiagnoseClusterVirtualNetwork.ps1 create mode 100644 swaggerci/azure-kusto/exports/New-AzKustoAttachedDatabaseConfiguration.ps1 create mode 100644 swaggerci/azure-kusto/exports/New-AzKustoCluster.ps1 create mode 100644 swaggerci/azure-kusto/exports/New-AzKustoClusterPrincipalAssignment.ps1 create mode 100644 swaggerci/azure-kusto/exports/New-AzKustoDataConnection.ps1 create mode 100644 swaggerci/azure-kusto/exports/New-AzKustoDatabase.ps1 create mode 100644 swaggerci/azure-kusto/exports/New-AzKustoDatabasePrincipalAssignment.ps1 create mode 100644 swaggerci/azure-kusto/exports/New-AzKustoManagedPrivateEndpoint.ps1 create mode 100644 swaggerci/azure-kusto/exports/New-AzKustoPrivateEndpointConnection.ps1 create mode 100644 swaggerci/azure-kusto/exports/New-AzKustoScript.ps1 create mode 100644 swaggerci/azure-kusto/exports/ProxyCmdletDefinitions.ps1 create mode 100644 swaggerci/azure-kusto/exports/README.md create mode 100644 swaggerci/azure-kusto/exports/Remove-AzKustoAttachedDatabaseConfiguration.ps1 create mode 100644 swaggerci/azure-kusto/exports/Remove-AzKustoCluster.ps1 create mode 100644 swaggerci/azure-kusto/exports/Remove-AzKustoClusterLanguageExtension.ps1 create mode 100644 swaggerci/azure-kusto/exports/Remove-AzKustoClusterPrincipalAssignment.ps1 create mode 100644 swaggerci/azure-kusto/exports/Remove-AzKustoDataConnection.ps1 create mode 100644 swaggerci/azure-kusto/exports/Remove-AzKustoDatabase.ps1 create mode 100644 swaggerci/azure-kusto/exports/Remove-AzKustoDatabasePrincipal.ps1 create mode 100644 swaggerci/azure-kusto/exports/Remove-AzKustoDatabasePrincipalAssignment.ps1 create mode 100644 swaggerci/azure-kusto/exports/Remove-AzKustoManagedPrivateEndpoint.ps1 create mode 100644 swaggerci/azure-kusto/exports/Remove-AzKustoPrivateEndpointConnection.ps1 create mode 100644 swaggerci/azure-kusto/exports/Remove-AzKustoScript.ps1 create mode 100644 swaggerci/azure-kusto/exports/Start-AzKustoCluster.ps1 create mode 100644 swaggerci/azure-kusto/exports/Stop-AzKustoCluster.ps1 create mode 100644 swaggerci/azure-kusto/exports/Test-AzKustoAttachedDatabaseConfigurationNameAvailability.ps1 create mode 100644 swaggerci/azure-kusto/exports/Test-AzKustoClusterNameAvailability.ps1 create mode 100644 swaggerci/azure-kusto/exports/Test-AzKustoClusterPrincipalAssignmentNameAvailability.ps1 create mode 100644 swaggerci/azure-kusto/exports/Test-AzKustoDataConnectionNameAvailability.ps1 create mode 100644 swaggerci/azure-kusto/exports/Test-AzKustoDatabaseNameAvailability.ps1 create mode 100644 swaggerci/azure-kusto/exports/Test-AzKustoDatabasePrincipalAssignmentNameAvailability.ps1 create mode 100644 swaggerci/azure-kusto/exports/Test-AzKustoManagedPrivateEndpointNameAvailability.ps1 create mode 100644 swaggerci/azure-kusto/exports/Test-AzKustoScriptNameAvailability.ps1 create mode 100644 swaggerci/azure-kusto/exports/Update-AzKustoCluster.ps1 create mode 100644 swaggerci/azure-kusto/exports/Update-AzKustoDataConnection.ps1 create mode 100644 swaggerci/azure-kusto/exports/Update-AzKustoDatabase.ps1 create mode 100644 swaggerci/azure-kusto/exports/Update-AzKustoManagedPrivateEndpoint.ps1 create mode 100644 swaggerci/azure-kusto/exports/Update-AzKustoScript.ps1 create mode 100644 swaggerci/azure-kusto/generate-help.ps1 create mode 100644 swaggerci/azure-kusto/generated/Module.cs create mode 100644 swaggerci/azure-kusto/generated/api/KustoManagementClient.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Any.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Any.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Any.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Any.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api10/ProxyResource.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api10/ProxyResource.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api10/ProxyResource.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api10/ProxyResource.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api10/Resource.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api10/Resource.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api10/Resource.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api10/Resource.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResource.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResource.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResource.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResource.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.dictionary.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20/SystemData.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20/SystemData.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20/SystemData.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20/SystemData.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AcceptedAudiences.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AcceptedAudiences.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AcceptedAudiences.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AcceptedAudiences.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfiguration.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfiguration.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfiguration.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfiguration.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationListResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationListResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationListResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationListResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationsCheckNameRequest.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationsCheckNameRequest.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationsCheckNameRequest.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationsCheckNameRequest.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureCapacity.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureCapacity.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureCapacity.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureCapacity.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureResourceSku.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureResourceSku.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureResourceSku.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureResourceSku.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureSku.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureSku.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureSku.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureSku.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameRequest.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameRequest.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameRequest.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameRequest.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudError.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudError.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudError.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudError.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudErrorBody.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudErrorBody.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudErrorBody.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudErrorBody.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Cluster.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Cluster.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Cluster.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Cluster.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterCheckNameRequest.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterCheckNameRequest.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterCheckNameRequest.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterCheckNameRequest.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterListResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterListResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterListResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterListResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignment.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignment.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignment.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignment.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentCheckNameRequest.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentCheckNameRequest.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentCheckNameRequest.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentCheckNameRequest.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentListResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentListResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentListResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentListResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdate.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdate.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdate.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdate.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.dictionary.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnection.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnection.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnection.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnection.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionCheckNameRequest.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionCheckNameRequest.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionCheckNameRequest.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionCheckNameRequest.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionListResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionListResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionListResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionListResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidation.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidation.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidation.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidation.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationListResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationListResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationListResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationListResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Database.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Database.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Database.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Database.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseListResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseListResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseListResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseListResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipal.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipal.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipal.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipal.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignment.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignment.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignment.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignment.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentCheckNameRequest.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentCheckNameRequest.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentCheckNameRequest.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentCheckNameRequest.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentListResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentListResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentListResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentListResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListRequest.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListRequest.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListRequest.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListRequest.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseStatistics.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseStatistics.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseStatistics.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseStatistics.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DiagnoseVirtualNetworkResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DiagnoseVirtualNetworkResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DiagnoseVirtualNetworkResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/DiagnoseVirtualNetworkResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDependency.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDependency.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDependency.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDependency.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDetail.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDetail.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDetail.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDetail.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridConnectionProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridConnectionProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridConnectionProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridConnectionProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridDataConnection.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridDataConnection.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridDataConnection.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridDataConnection.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubConnectionProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubConnectionProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubConnectionProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubConnectionProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubDataConnection.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubDataConnection.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubDataConnection.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubDataConnection.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseDefinition.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseDefinition.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseDefinition.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseDefinition.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseListResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseListResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseListResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseListResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Identity.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Identity.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Identity.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Identity.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.dictionary.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubConnectionProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubConnectionProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubConnectionProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubConnectionProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubDataConnection.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubDataConnection.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubDataConnection.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubDataConnection.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/KeyVaultProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/KeyVaultProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/KeyVaultProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/KeyVaultProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtension.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtension.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtension.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtension.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtensionsList.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtensionsList.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtensionsList.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtensionsList.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ListResourceSkusResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ListResourceSkusResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ListResourceSkusResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ListResourceSkusResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpoint.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpoint.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpoint.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpoint.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointListResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointListResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointListResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointListResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointsCheckNameRequest.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointsCheckNameRequest.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointsCheckNameRequest.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointsCheckNameRequest.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Operation.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Operation.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Operation.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Operation.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationDisplay.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationDisplay.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationDisplay.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationDisplay.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationListResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationListResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationListResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationListResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultErrorProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultErrorProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultErrorProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultErrorProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OptimizedAutoscale.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OptimizedAutoscale.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OptimizedAutoscale.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OptimizedAutoscale.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpoint.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpoint.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpoint.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpoint.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointListResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointListResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointListResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointListResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnection.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnection.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnection.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnection.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionListResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionListResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionListResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionListResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointProperty.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointProperty.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointProperty.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointProperty.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResource.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResource.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResource.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResource.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceListResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceListResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceListResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceListResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkServiceConnectionStateProperty.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkServiceConnectionStateProperty.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkServiceConnectionStateProperty.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkServiceConnectionStateProperty.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabase.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabase.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabase.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabase.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabaseProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabaseProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabaseProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabaseProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabase.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabase.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabase.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabase.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabaseProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabaseProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabaseProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabaseProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Script.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Script.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Script.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/Script.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptCheckNameRequest.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptCheckNameRequest.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptCheckNameRequest.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptCheckNameRequest.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptListResult.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptListResult.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptListResult.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptListResult.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescription.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescription.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescription.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescription.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescriptionList.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescriptionList.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescriptionList.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescriptionList.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuLocationInfoItem.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuLocationInfoItem.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuLocationInfoItem.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuLocationInfoItem.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/TableLevelSharingProperties.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/TableLevelSharingProperties.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/TableLevelSharingProperties.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/TableLevelSharingProperties.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/TrustedExternalTenant.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/TrustedExternalTenant.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/TrustedExternalTenant.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/TrustedExternalTenant.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/VirtualNetworkConfiguration.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/VirtualNetworkConfiguration.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/VirtualNetworkConfiguration.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/Api20220201/VirtualNetworkConfiguration.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/KustoIdentity.PowerShell.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/KustoIdentity.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/KustoIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/api/Models/KustoIdentity.json.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/AzureScaleType.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/AzureScaleType.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/AzureScaleType.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/AzureSkuName.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/AzureSkuName.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/AzureSkuName.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/AzureSkuTier.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/AzureSkuTier.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/AzureSkuTier.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/BlobStorageEventType.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/BlobStorageEventType.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/BlobStorageEventType.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/ClusterNetworkAccessFlag.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/ClusterNetworkAccessFlag.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/ClusterNetworkAccessFlag.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/ClusterPrincipalRole.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/ClusterPrincipalRole.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/ClusterPrincipalRole.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/Compression.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/Compression.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/Compression.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/CreatedByType.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/CreatedByType.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/CreatedByType.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/DataConnectionKind.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/DataConnectionKind.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/DataConnectionKind.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalRole.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalRole.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalRole.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalType.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalType.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalType.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/DatabaseRouting.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/DatabaseRouting.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/DatabaseRouting.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/DefaultPrincipalsModificationKind.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/DefaultPrincipalsModificationKind.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/DefaultPrincipalsModificationKind.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/EngineType.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/EngineType.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/EngineType.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/EventGridDataFormat.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/EventGridDataFormat.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/EventGridDataFormat.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/EventHubDataFormat.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/EventHubDataFormat.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/EventHubDataFormat.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/IdentityType.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/IdentityType.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/IdentityType.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/IotHubDataFormat.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/IotHubDataFormat.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/IotHubDataFormat.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/Kind.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/Kind.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/Kind.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/LanguageExtensionName.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/LanguageExtensionName.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/LanguageExtensionName.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/PrincipalType.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/PrincipalType.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/PrincipalType.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/PrincipalsModificationKind.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/PrincipalsModificationKind.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/PrincipalsModificationKind.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/ProvisioningState.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/ProvisioningState.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/ProvisioningState.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/PublicIPType.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/PublicIPType.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/PublicIPType.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/PublicNetworkAccess.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/PublicNetworkAccess.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/PublicNetworkAccess.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/Reason.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/Reason.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/Reason.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/State.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/State.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/State.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/Status.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/Status.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/Status.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/Type.Completer.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/Type.TypeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/api/Support/Type.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/AddAzKustoClusterLanguageExtension_Add.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/AddAzKustoClusterLanguageExtension_AddExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/AddAzKustoClusterLanguageExtension_AddViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/AddAzKustoClusterLanguageExtension_AddViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/AddAzKustoDatabasePrincipal_Add.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/AddAzKustoDatabasePrincipal_AddExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/AddAzKustoDatabasePrincipal_AddViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/AddAzKustoDatabasePrincipal_AddViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoAttachedDatabaseConfiguration_Get.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoAttachedDatabaseConfiguration_GetViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoAttachedDatabaseConfiguration_List.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterFollowerDatabase_List.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterLanguageExtension_List.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterOutboundNetworkDependencyEndpoint_List.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterPrincipalAssignment_Get.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterPrincipalAssignment_GetViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterPrincipalAssignment_List.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterSku_List.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterSku_List1.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoCluster_Get.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoCluster_GetViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoCluster_List.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoCluster_List1.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDataConnection_Get.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDataConnection_GetViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDataConnection_List.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabasePrincipalAssignment_Get.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabasePrincipalAssignment_GetViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabasePrincipalAssignment_List.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabasePrincipal_List.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabase_Get.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabase_GetViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabase_List.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoManagedPrivateEndpoint_Get.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoManagedPrivateEndpoint_GetViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoManagedPrivateEndpoint_List.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperation_List.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperationsResult_Get.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperationsResult_GetViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperationsResultsLocation_Get.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperationsResultsLocation_GetViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateEndpointConnection_Get.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateEndpointConnection_GetViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateEndpointConnection_List.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateLinkResource_Get.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateLinkResource_GetViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateLinkResource_List.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoScript_Get.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoScript_GetViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/GetAzKustoScript_List.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDataConnectionValidation_Data.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDataConnectionValidation_DataExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDataConnectionValidation_DataViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDataConnectionValidation_DataViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDetachClusterFollowerDatabase_Detach.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDetachClusterFollowerDatabase_DetachExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDiagnoseClusterVirtualNetwork_Diagnose.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDiagnoseClusterVirtualNetwork_DiagnoseViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/NewAzKustoAttachedDatabaseConfiguration_CreateExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/NewAzKustoClusterPrincipalAssignment_CreateExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/NewAzKustoCluster_CreateExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/NewAzKustoDataConnection_CreateExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/NewAzKustoDatabasePrincipalAssignment_CreateExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/NewAzKustoDatabase_CreateExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/NewAzKustoManagedPrivateEndpoint_CreateExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/NewAzKustoPrivateEndpointConnection_CreateExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/NewAzKustoScript_CreateExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoAttachedDatabaseConfiguration_Delete.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoAttachedDatabaseConfiguration_DeleteViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterLanguageExtension_Remove.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterLanguageExtension_RemoveExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterLanguageExtension_RemoveViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterLanguageExtension_RemoveViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterPrincipalAssignment_Delete.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterPrincipalAssignment_DeleteViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoCluster_Delete.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoCluster_DeleteViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDataConnection_Delete.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDataConnection_DeleteViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipalAssignment_Delete.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipalAssignment_DeleteViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipal_Remove.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipal_RemoveExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipal_RemoveViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipal_RemoveViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabase_Delete.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabase_DeleteViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoManagedPrivateEndpoint_Delete.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoManagedPrivateEndpoint_DeleteViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoPrivateEndpointConnection_Delete.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoPrivateEndpointConnection_DeleteViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoScript_Delete.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoScript_DeleteViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/StartAzKustoCluster_Start.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/StartAzKustoCluster_StartViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/StopAzKustoCluster_Stop.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/StopAzKustoCluster_StopViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoAttachedDatabaseConfigurationNameAvailability_Check.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterNameAvailability_Check.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterNameAvailability_CheckExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterNameAvailability_CheckViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterNameAvailability_CheckViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterPrincipalAssignmentNameAvailability_Check.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDataConnectionNameAvailability_Check.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDataConnectionNameAvailability_CheckExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDataConnectionNameAvailability_CheckViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDataConnectionNameAvailability_CheckViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabaseNameAvailability_Check.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabaseNameAvailability_CheckExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabaseNameAvailability_CheckViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabaseNameAvailability_CheckViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabasePrincipalAssignmentNameAvailability_Check.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoManagedPrivateEndpointNameAvailability_Check.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoManagedPrivateEndpointNameAvailability_CheckExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoScriptNameAvailability_Check.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoScriptNameAvailability_CheckExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoScriptNameAvailability_CheckViaIdentity.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/TestAzKustoScriptNameAvailability_CheckViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoCluster_UpdateExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoCluster_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoDataConnection_UpdateExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoDataConnection_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoDatabase_UpdateExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoDatabase_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoManagedPrivateEndpoint_UpdateExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoManagedPrivateEndpoint_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoScript_UpdateExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoScript_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Accounts.format.ps1xml create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Accounts.generated.format.ps1xml create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Accounts.types.ps1xml create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Az.Accounts.nuspec create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psd1 create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psm1 create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Hyak.Common.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.ApplicationInsights.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.Common.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.ResourceManager.deps.json create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.deps.json create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authenticators.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Aks.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Authorization.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Compute.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.KeyVault.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Monitor.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Network.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Websites.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll-Help.xml create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Common.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Storage.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Strategies.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Rest.ClientRuntime.Azure.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Rest.ClientRuntime.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.WindowsAzure.Storage.DataMovement.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.WindowsAzure.Storage.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Azure.Core.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Azure.Identity.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Microsoft.Bcl.AsyncInterfaces.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Microsoft.Identity.Client.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Memory.Data.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Numerics.Vectors.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Text.Encodings.Web.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Text.Json.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Threading.Tasks.Extensions.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PostImportScripts/LoadAuthenticators.ps1 create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Core.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Identity.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Azure.PowerShell.Authenticators.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Bcl.AsyncInterfaces.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Identity.Client.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Newtonsoft.Json.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Buffers.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Diagnostics.DiagnosticSource.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Memory.Data.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Memory.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Net.Http.WinHttpHandler.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Numerics.Vectors.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Private.ServiceModel.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Reflection.DispatchProxy.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Security.AccessControl.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Security.Cryptography.Cng.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Security.Permissions.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Security.Principal.Windows.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.ServiceModel.Primitives.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Text.Encodings.Web.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Text.Json.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Threading.Tasks.Extensions.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Xml.ReaderWriter.dll create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/StartupScripts/AzError.ps1 create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/StartupScripts/InitializeAssemblyResolver.ps1 create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/[Content_Types].xml create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/_rels/.rels create mode 100644 swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/package/services/metadata/core-properties/a81ca9a9339b4bd291ed0d31ee492ddd.psmdcp create mode 100644 swaggerci/azure-kusto/generated/runtime/AsyncCommandRuntime.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/AsyncJob.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/AsyncOperationResponse.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/Cmdlets/ExportCmdletSurface.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/Cmdlets/ExportExampleStub.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/Cmdlets/ExportFormatPs1xml.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/Cmdlets/ExportHelpMarkdown.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/Cmdlets/ExportModelSurface.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/Cmdlets/ExportProxyCmdlet.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/Cmdlets/ExportPsd1.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/Cmdlets/ExportTestStub.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/Cmdlets/GetCommonParameter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/Cmdlets/GetModuleGuid.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/Cmdlets/GetScriptCmdlet.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/CollectionExtensions.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/MarkdownRenderer.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/Models/PsFormatTypes.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/Models/PsHelpMarkdownOutputs.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/Models/PsHelpTypes.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/Models/PsMarkdownTypes.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/Models/PsProxyOutputs.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/Models/PsProxyTypes.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/PsAttributes.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/PsExtensions.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/PsHelpers.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/StringExtensions.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/BuildTime/XmlExtensions.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/CmdInfoHandler.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/ConversionException.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/IJsonConverter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/BinaryConverter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/BooleanConverter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/DateTimeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/DateTimeOffsetConverter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/DecimalConverter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/DoubleConverter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/EnumConverter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/GuidConverter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/HashSet'1Converter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/Int16Converter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/Int32Converter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/Int64Converter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/JsonArrayConverter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/JsonObjectConverter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/SingleConverter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/StringConverter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/TimeSpanConverter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/UInt16Converter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/UInt32Converter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/UInt64Converter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/Instances/UriConverter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/JsonConverter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/JsonConverterAttribute.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/JsonConverterFactory.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Conversions/StringLikeConverter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Customizations/IJsonSerializable.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Customizations/JsonArray.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Customizations/JsonBoolean.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Customizations/JsonNode.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Customizations/JsonNumber.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Customizations/JsonObject.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Customizations/JsonString.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Customizations/XNodeArray.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Debugging.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/DictionaryExtensions.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/EventData.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/EventDataExtensions.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/EventListener.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Events.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/EventsExtensions.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Extensions.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Helpers/Extensions/StringBuilderExtensions.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Helpers/Extensions/TypeExtensions.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Helpers/Seperator.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Helpers/TypeDetails.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Helpers/XHelper.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/HttpPipeline.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/HttpPipelineMocking.ps1 create mode 100644 swaggerci/azure-kusto/generated/runtime/IAssociativeArray.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/IHeaderSerializable.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/ISendAsync.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/InfoAttribute.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Iso/IsoDate.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/JsonType.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/MessageAttribute.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/MessageAttributeHelper.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Method.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Models/JsonMember.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Models/JsonModel.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Models/JsonModelCache.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Nodes/Collections/JsonArray.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Nodes/Collections/XImmutableArray.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Nodes/Collections/XList.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Nodes/Collections/XNodeArray.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Nodes/Collections/XSet.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Nodes/JsonBoolean.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Nodes/JsonDate.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Nodes/JsonNode.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Nodes/JsonNumber.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Nodes/JsonObject.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Nodes/JsonString.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Nodes/XBinary.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Nodes/XNull.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Parser/Exceptions/ParseException.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Parser/JsonParser.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Parser/JsonToken.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Parser/JsonTokenizer.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Parser/Location.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Parser/Readers/SourceReader.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Parser/TokenReader.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/PipelineMocking.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Properties/Resources.Designer.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Properties/Resources.resx create mode 100644 swaggerci/azure-kusto/generated/runtime/Response.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Serialization/JsonSerializer.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Serialization/PropertyTransformation.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Serialization/SerializationOptions.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/SerializationMode.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/TypeConverterExtensions.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/UndeclaredResponseException.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/Writers/JsonWriter.cs create mode 100644 swaggerci/azure-kusto/generated/runtime/delegates.cs create mode 100644 swaggerci/azure-kusto/how-to.md create mode 100644 swaggerci/azure-kusto/internal/Az.Kusto.internal.psm1 create mode 100644 swaggerci/azure-kusto/internal/Get-AzKustoOperation.ps1 create mode 100644 swaggerci/azure-kusto/internal/ProxyCmdletDefinitions.ps1 create mode 100644 swaggerci/azure-kusto/internal/README.md create mode 100644 swaggerci/azure-kusto/license.txt create mode 100644 swaggerci/azure-kusto/pack-module.ps1 create mode 100644 swaggerci/azure-kusto/readme.md create mode 100644 swaggerci/azure-kusto/resources/README.md create mode 100644 swaggerci/azure-kusto/run-module.ps1 create mode 100644 swaggerci/azure-kusto/test-module.ps1 create mode 100644 swaggerci/azure-kusto/test/Add-AzKustoClusterLanguageExtension.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Add-AzKustoDatabasePrincipal.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Get-AzKustoAttachedDatabaseConfiguration.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Get-AzKustoCluster.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Get-AzKustoClusterFollowerDatabase.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Get-AzKustoClusterLanguageExtension.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Get-AzKustoClusterOutboundNetworkDependencyEndpoint.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Get-AzKustoClusterPrincipalAssignment.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Get-AzKustoClusterSku.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Get-AzKustoDataConnection.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Get-AzKustoDatabase.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Get-AzKustoDatabasePrincipal.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Get-AzKustoDatabasePrincipalAssignment.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Get-AzKustoManagedPrivateEndpoint.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Get-AzKustoOperationsResult.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Get-AzKustoOperationsResultsLocation.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Get-AzKustoPrivateEndpointConnection.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Get-AzKustoPrivateLinkResource.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Get-AzKustoScript.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Invoke-AzKustoDataConnectionValidation.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Invoke-AzKustoDetachClusterFollowerDatabase.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Invoke-AzKustoDiagnoseClusterVirtualNetwork.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/New-AzKustoAttachedDatabaseConfiguration.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/New-AzKustoCluster.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/New-AzKustoClusterPrincipalAssignment.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/New-AzKustoDataConnection.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/New-AzKustoDatabase.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/New-AzKustoDatabasePrincipalAssignment.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/New-AzKustoManagedPrivateEndpoint.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/New-AzKustoPrivateEndpointConnection.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/New-AzKustoScript.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/README.md create mode 100644 swaggerci/azure-kusto/test/Remove-AzKustoAttachedDatabaseConfiguration.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Remove-AzKustoCluster.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Remove-AzKustoClusterLanguageExtension.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Remove-AzKustoClusterPrincipalAssignment.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Remove-AzKustoDataConnection.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Remove-AzKustoDatabase.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Remove-AzKustoDatabasePrincipal.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Remove-AzKustoDatabasePrincipalAssignment.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Remove-AzKustoManagedPrivateEndpoint.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Remove-AzKustoPrivateEndpointConnection.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Remove-AzKustoScript.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Start-AzKustoCluster.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Stop-AzKustoCluster.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Test-AzKustoAttachedDatabaseConfigurationNameAvailability.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Test-AzKustoClusterNameAvailability.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Test-AzKustoClusterPrincipalAssignmentNameAvailability.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Test-AzKustoDataConnectionNameAvailability.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Test-AzKustoDatabaseNameAvailability.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Test-AzKustoDatabasePrincipalAssignmentNameAvailability.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Test-AzKustoManagedPrivateEndpointNameAvailability.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Test-AzKustoScriptNameAvailability.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Update-AzKustoCluster.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Update-AzKustoDataConnection.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Update-AzKustoDatabase.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Update-AzKustoManagedPrivateEndpoint.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/Update-AzKustoScript.Tests.ps1 create mode 100644 swaggerci/azure-kusto/test/loadEnv.ps1 create mode 100644 swaggerci/azure-kusto/test/utils.ps1 create mode 100644 swaggerci/azure-kusto/utils/Unprotect-SecureString.ps1 diff --git a/swaggerci/azure-kusto/.gitattributes b/swaggerci/azure-kusto/.gitattributes new file mode 100644 index 000000000000..2125666142eb --- /dev/null +++ b/swaggerci/azure-kusto/.gitattributes @@ -0,0 +1 @@ +* text=auto \ No newline at end of file diff --git a/swaggerci/azure-kusto/.gitignore b/swaggerci/azure-kusto/.gitignore new file mode 100644 index 000000000000..7998f37e1e47 --- /dev/null +++ b/swaggerci/azure-kusto/.gitignore @@ -0,0 +1,5 @@ +bin +obj +.vs +tools +test/*-TestResults.xml \ No newline at end of file diff --git a/swaggerci/azure-kusto/Az.Kusto.csproj b/swaggerci/azure-kusto/Az.Kusto.csproj new file mode 100644 index 000000000000..b7214ea7c7f6 --- /dev/null +++ b/swaggerci/azure-kusto/Az.Kusto.csproj @@ -0,0 +1,43 @@ + + + + 0.1.0 + 7.1 + netstandard2.0 + Library + Az.Kusto.private + Microsoft.Azure.PowerShell.Cmdlets.Kusto + true + false + ./bin + $(OutputPath) + Az.Kusto.nuspec + true + + 1998 + true + + + + + false + TRACE;DEBUG;NETSTANDARD + + + + true + true + MSSharedLibKey.snk + TRACE;RELEASE;NETSTANDARD;SIGN + + + + + + + + + $(DefaultItemExcludes);resources/** + + + \ No newline at end of file diff --git a/swaggerci/azure-kusto/Az.Kusto.format.ps1xml b/swaggerci/azure-kusto/Az.Kusto.format.ps1xml new file mode 100644 index 000000000000..d8d069cfa007 --- /dev/null +++ b/swaggerci/azure-kusto/Az.Kusto.format.ps1xml @@ -0,0 +1,3123 @@ + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.KustoIdentity + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.KustoIdentity + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AttachedDatabaseConfigurationName + + + ClusterName + + + DataConnectionName + + + DatabaseName + + + Id + + + Location + + + ManagedPrivateEndpointName + + + OperationId + + + PrincipalAssignmentName + + + PrivateEndpointConnectionName + + + PrivateLinkResourceName + + + ResourceGroupName + + + ScriptName + + + SubscriptionId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AcceptedAudiences + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AcceptedAudiences + + + + + + + + + + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfiguration + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfiguration + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + Location + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfigurationProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfigurationProperties + + + + + + + + + + + + + + + + + + + + + + + + AttachedDatabaseName + + + ClusterResourceId + + + DatabaseName + + + DefaultPrincipalsModificationKind + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfigurationsCheckNameRequest + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfigurationsCheckNameRequest + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureCapacity + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureCapacity + + + + + + + + + + + + + + + + + + + + + Default + + + Maximum + + + Minimum + + + ScaleType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureResourceSku + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureResourceSku + + + + + + + + + + + + ResourceType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureSku + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureSku + + + + + + + + + + + + + + + + + + Capacity + + + Name + + + Tier + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CheckNameRequest + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CheckNameRequest + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CheckNameResult + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CheckNameResult + + + + + + + + + + + + + + + + + + + + + Message + + + Name + + + NameAvailable + + + Reason + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudErrorBody + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudErrorBody + + + + + + + + + + + + + + + + + + Code + + + Message + + + Target + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Cluster + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Cluster + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Location + + + Name + + + Type + + + AzureAsyncOperation + + + Etag + + + Zone + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterCheckNameRequest + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterCheckNameRequest + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalAssignment + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalAssignment + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalAssignmentCheckNameRequest + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalAssignmentCheckNameRequest + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AadObjectId + + + PrincipalId + + + PrincipalName + + + PrincipalType + + + ProvisioningState + + + Role + + + TenantId + + + TenantName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AllowedFqdnList + + + AllowedIPRangeList + + + DataIngestionUri + + + EnableAutoStop + + + EnableDiskEncryption + + + EnableDoubleEncryption + + + EnablePurge + + + EnableStreamingIngest + + + EngineType + + + ProvisioningState + + + PublicIPType + + + PublicNetworkAccess + + + RestrictOutboundNetworkAccess + + + State + + + StateReason + + + Uri + + + VirtualClusterGraduationProperty + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterUpdate + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterUpdate + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + Location + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterUpdateTags + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterUpdateTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties + + + + + + + + + + + + + + + ClientId + + + PrincipalId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Database + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Database + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + AzureAsyncOperation + + + Kind + + + Location + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipal + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AppId + + + Email + + + Fqn + + + Name + + + Role + + + TenantName + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalAssignment + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalAssignment + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalAssignmentCheckNameRequest + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalAssignmentCheckNameRequest + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AadObjectId + + + PrincipalId + + + PrincipalName + + + PrincipalType + + + ProvisioningState + + + Role + + + TenantId + + + TenantName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseStatistics + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseStatistics + + + + + + + + + + + + Size + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + AzureAsyncOperation + + + Kind + + + Location + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionCheckNameRequest + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionCheckNameRequest + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionValidation + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionValidation + + + + + + + + + + + + DataConnectionName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionValidationResult + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionValidationResult + + + + + + + + + + + + ErrorMessage + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DiagnoseVirtualNetworkResult + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DiagnoseVirtualNetworkResult + + + + + + + + + + + + Finding + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EndpointDependency + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EndpointDependency + + + + + + + + + + + + DomainName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EndpointDetail + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EndpointDetail + + + + + + + + + + + + Port + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventGridConnectionProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventGridConnectionProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BlobStorageEventType + + + ConsumerGroup + + + DataFormat + + + DatabaseRouting + + + EventGridResourceId + + + EventHubResourceId + + + IgnoreFirstRecord + + + ManagedIdentityObjectId + + + ManagedIdentityResourceId + + + MappingRuleName + + + ProvisioningState + + + StorageAccountResourceId + + + TableName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventGridDataConnection + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventGridDataConnection + + + + + + + + + + + + + + + + + + + + + + + + + + + AzureAsyncOperation + + + Id + + + Kind + + + Location + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventHubConnectionProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventHubConnectionProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Compression + + + ConsumerGroup + + + DataFormat + + + DatabaseRouting + + + EventHubResourceId + + + EventSystemProperty + + + ManagedIdentityObjectId + + + ManagedIdentityResourceId + + + MappingRuleName + + + ProvisioningState + + + TableName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventHubDataConnection + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventHubDataConnection + + + + + + + + + + + + + + + + + + + + + + + + + + + AzureAsyncOperation + + + Id + + + Kind + + + Location + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.FollowerDatabaseDefinition + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.FollowerDatabaseDefinition + + + + + + + + + + + + + + + + + + AttachedDatabaseConfigurationName + + + ClusterResourceId + + + DatabaseName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Identity + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Identity + + + + + + + + + + + + + + + + + + PrincipalId + + + TenantId + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IotHubConnectionProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IotHubConnectionProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ConsumerGroup + + + DataFormat + + + DatabaseRouting + + + EventSystemProperty + + + IotHubResourceId + + + MappingRuleName + + + ProvisioningState + + + SharedAccessPolicyName + + + TableName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IotHubDataConnection + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IotHubDataConnection + + + + + + + + + + + + + + + + + + + + + + + + + + + AzureAsyncOperation + + + Id + + + Kind + + + Location + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.KeyVaultProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.KeyVaultProperties + + + + + + + + + + + + + + + + + + + + + KeyName + + + KeyVaultUri + + + KeyVersion + + + UserIdentity + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtension + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtension + + + + + + + + + + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpoint + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpoint + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + AzureAsyncOperation + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpointProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpointProperties + + + + + + + + + + + + + + + + + + + + + + + + GroupId + + + PrivateLinkResourceId + + + PrivateLinkResourceRegion + + + ProvisioningState + + + RequestMessage + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpointsCheckNameRequest + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpointsCheckNameRequest + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Operation + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Operation + + + + + + + + + + + + + + + Name + + + Origin + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationDisplay + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationDisplay + + + + + + + + + + + + + + + + + + + + + Description + + + Operation + + + Provider + + + Resource + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationListResult + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationResult + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationResult + + + + + + + + + + + + + + + + + + + + + + + + + + + EndTime + + + Id + + + Name + + + PercentComplete + + + StartTime + + + Status + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationResultErrorProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationResultErrorProperties + + + + + + + + + + + + + + + Code + + + Message + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationResultProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationResultProperties + + + + + + + + + + + + + + + + + + OperationKind + + + OperationState + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OptimizedAutoscale + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OptimizedAutoscale + + + + + + + + + + + + + + + + + + + + + IsEnabled + + + Maximum + + + Minimum + + + Version + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OutboundNetworkDependenciesEndpoint + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OutboundNetworkDependenciesEndpoint + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + Etag + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OutboundNetworkDependenciesEndpointListResult + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OutboundNetworkDependenciesEndpointListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OutboundNetworkDependenciesEndpointProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OutboundNetworkDependenciesEndpointProperties + + + + + + + + + + + + + + + Category + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnection + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnection + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnectionProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnectionProperties + + + + + + + + + + + + + + + GroupId + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointProperty + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointProperty + + + + + + + + + + + + Id + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkResource + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkResource + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkResourceProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkResourceProperties + + + + + + + + + + + + + + + + + + GroupId + + + RequiredMember + + + RequiredZoneName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkServiceConnectionStateProperty + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkServiceConnectionStateProperty + + + + + + + + + + + + + + + + + + ActionsRequired + + + Description + + + Status + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadOnlyFollowingDatabase + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadOnlyFollowingDatabase + + + + + + + + + + + + + + + + + + + + + + + + + + + AzureAsyncOperation + + + Id + + + Kind + + + Location + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadOnlyFollowingDatabaseProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadOnlyFollowingDatabaseProperties + + + + + + + + + + + + + + + + + + + + + AttachedDatabaseConfigurationName + + + LeaderClusterResourceId + + + PrincipalsModificationKind + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadWriteDatabase + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadWriteDatabase + + + + + + + + + + + + + + + + + + + + + + + + + + + AzureAsyncOperation + + + Id + + + Kind + + + Location + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadWriteDatabaseProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadWriteDatabaseProperties + + + + + + + + + + + + + + + IsFollowed + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Script + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Script + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + AzureAsyncOperation + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ScriptCheckNameRequest + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ScriptCheckNameRequest + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ScriptProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ScriptProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + ContinueOnError + + + ForceUpdateTag + + + ProvisioningState + + + ScriptContent + + + ScriptUrl + + + ScriptUrlSasToken + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.SkuDescription + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.SkuDescription + + + + + + + + + + + + + + + + + + + + + Location + + + Name + + + ResourceType + + + Tier + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.SkuLocationInfoItem + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.SkuLocationInfoItem + + + + + + + + + + + + + + + Location + + + Zone + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TableLevelSharingProperties + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TableLevelSharingProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + ExternalTablesToExclude + + + ExternalTablesToInclude + + + MaterializedViewsToExclude + + + MaterializedViewsToInclude + + + TablesToExclude + + + TablesToInclude + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TrustedExternalTenant + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TrustedExternalTenant + + + + + + + + + + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.VirtualNetworkConfiguration + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.VirtualNetworkConfiguration + + + + + + + + + + + + + + + + + + DataManagementPublicIPId + + + EnginePublicIPId + + + SubnetId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemData + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemData + + + + + + + + + + + + + + + + + + + + + + + + + + + CreatedAt + + + CreatedBy + + + CreatedByType + + + LastModifiedAt + + + LastModifiedBy + + + LastModifiedByType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ProxyResource + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ProxyResource + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.TrackedResource + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.TrackedResource + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + Location + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.TrackedResourceTags + + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.TrackedResourceTags + + + + + + + + + + + + Item + + + + + + + + \ No newline at end of file diff --git a/swaggerci/azure-kusto/Az.Kusto.nuspec b/swaggerci/azure-kusto/Az.Kusto.nuspec new file mode 100644 index 000000000000..1f94a4f15c71 --- /dev/null +++ b/swaggerci/azure-kusto/Az.Kusto.nuspec @@ -0,0 +1,32 @@ + + + + Az.Kusto + 0.1.0 + Microsoft Corporation + Microsoft Corporation + true + https://aka.ms/azps-license + https://github.com/Azure/azure-powershell + Microsoft Azure PowerShell: $(service-name) cmdlets + + Microsoft Corporation. All rights reserved. + Azure ResourceManager ARM PSModule $(service-name) + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/swaggerci/azure-kusto/Az.Kusto.psd1 b/swaggerci/azure-kusto/Az.Kusto.psd1 new file mode 100644 index 000000000000..550c80a2c768 --- /dev/null +++ b/swaggerci/azure-kusto/Az.Kusto.psd1 @@ -0,0 +1,24 @@ +@{ + GUID = '33d8204d-982b-4d55-a9ff-694f59dae3b3' + RootModule = './Az.Kusto.psm1' + ModuleVersion = '0.1.0' + CompatiblePSEditions = 'Core', 'Desktop' + Author = 'Microsoft Corporation' + CompanyName = 'Microsoft Corporation' + Copyright = 'Microsoft Corporation. All rights reserved.' + Description = 'Microsoft Azure PowerShell: Kusto cmdlets' + PowerShellVersion = '5.1' + DotNetFrameworkVersion = '4.7.2' + RequiredAssemblies = './bin/Az.Kusto.private.dll' + FormatsToProcess = './Az.Kusto.format.ps1xml' + FunctionsToExport = 'Add-AzKustoClusterLanguageExtension', 'Add-AzKustoDatabasePrincipal', 'Get-AzKustoAttachedDatabaseConfiguration', 'Get-AzKustoCluster', 'Get-AzKustoClusterFollowerDatabase', 'Get-AzKustoClusterLanguageExtension', 'Get-AzKustoClusterOutboundNetworkDependencyEndpoint', 'Get-AzKustoClusterPrincipalAssignment', 'Get-AzKustoClusterSku', 'Get-AzKustoDatabase', 'Get-AzKustoDatabasePrincipal', 'Get-AzKustoDatabasePrincipalAssignment', 'Get-AzKustoDataConnection', 'Get-AzKustoManagedPrivateEndpoint', 'Get-AzKustoOperationsResult', 'Get-AzKustoOperationsResultsLocation', 'Get-AzKustoPrivateEndpointConnection', 'Get-AzKustoPrivateLinkResource', 'Get-AzKustoScript', 'Invoke-AzKustoDataConnectionValidation', 'Invoke-AzKustoDetachClusterFollowerDatabase', 'Invoke-AzKustoDiagnoseClusterVirtualNetwork', 'New-AzKustoAttachedDatabaseConfiguration', 'New-AzKustoCluster', 'New-AzKustoClusterPrincipalAssignment', 'New-AzKustoDatabase', 'New-AzKustoDatabasePrincipalAssignment', 'New-AzKustoDataConnection', 'New-AzKustoManagedPrivateEndpoint', 'New-AzKustoPrivateEndpointConnection', 'New-AzKustoScript', 'Remove-AzKustoAttachedDatabaseConfiguration', 'Remove-AzKustoCluster', 'Remove-AzKustoClusterLanguageExtension', 'Remove-AzKustoClusterPrincipalAssignment', 'Remove-AzKustoDatabase', 'Remove-AzKustoDatabasePrincipal', 'Remove-AzKustoDatabasePrincipalAssignment', 'Remove-AzKustoDataConnection', 'Remove-AzKustoManagedPrivateEndpoint', 'Remove-AzKustoPrivateEndpointConnection', 'Remove-AzKustoScript', 'Start-AzKustoCluster', 'Stop-AzKustoCluster', 'Test-AzKustoAttachedDatabaseConfigurationNameAvailability', 'Test-AzKustoClusterNameAvailability', 'Test-AzKustoClusterPrincipalAssignmentNameAvailability', 'Test-AzKustoDatabaseNameAvailability', 'Test-AzKustoDatabasePrincipalAssignmentNameAvailability', 'Test-AzKustoDataConnectionNameAvailability', 'Test-AzKustoManagedPrivateEndpointNameAvailability', 'Test-AzKustoScriptNameAvailability', 'Update-AzKustoCluster', 'Update-AzKustoDatabase', 'Update-AzKustoDataConnection', 'Update-AzKustoManagedPrivateEndpoint', 'Update-AzKustoScript', '*' + AliasesToExport = '*' + PrivateData = @{ + PSData = @{ + Tags = 'Azure', 'ResourceManager', 'ARM', 'PSModule', 'Kusto' + LicenseUri = 'https://aka.ms/azps-license' + ProjectUri = 'https://github.com/Azure/azure-powershell' + ReleaseNotes = '' + } + } +} diff --git a/swaggerci/azure-kusto/Az.Kusto.psm1 b/swaggerci/azure-kusto/Az.Kusto.psm1 new file mode 100644 index 000000000000..56e094487b18 --- /dev/null +++ b/swaggerci/azure-kusto/Az.Kusto.psm1 @@ -0,0 +1,103 @@ +# region Generated + # ---------------------------------------------------------------------------------- + # Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. + # ---------------------------------------------------------------------------------- + # Load required Az.Accounts module + $accountsName = 'Az.Accounts' + $accountsModule = Get-Module -Name $accountsName + if(-not $accountsModule) { + $localAccountsPath = Join-Path $PSScriptRoot 'generated/modules' + if(Test-Path -Path $localAccountsPath) { + $localAccounts = Get-ChildItem -Path $localAccountsPath -Recurse -Include 'Az.Accounts.psd1' | Select-Object -Last 1 + if($localAccounts) { + $accountsModule = Import-Module -Name ($localAccounts.FullName) -Scope Global -PassThru + } + } + if(-not $accountsModule) { + $hasAdequateVersion = (Get-Module -Name $accountsName -ListAvailable | Where-Object { $_.Version -ge [System.Version]'2.2.3' } | Measure-Object).Count -gt 0 + if($hasAdequateVersion) { + $accountsModule = Import-Module -Name $accountsName -MinimumVersion 2.2.3 -Scope Global -PassThru + } + } + } + + if(-not $accountsModule) { + Write-Error "`nThis module requires $accountsName version 2.2.3 or greater. For installation instructions, please see: https://docs.microsoft.com/powershell/azure/install-az-ps" -ErrorAction Stop + } elseif (($accountsModule.Version -lt [System.Version]'2.2.3') -and (-not $localAccounts)) { + Write-Error "`nThis module requires $accountsName version 2.2.3 or greater. An earlier version of Az.Accounts is imported in the current PowerShell session. If you are running test, please try to add the switch '-RegenerateSupportModule' when executing 'test-module.ps1'. Otherwise please open a new PowerShell session and import this module again.`nAdditionally, this error could indicate that multiple incompatible versions of Azure PowerShell modules are installed on your system. For troubleshooting information, please see: https://aka.ms/azps-version-error" -ErrorAction Stop + } + Write-Information "Loaded Module '$($accountsModule.Name)'" + + # Load the private module dll + $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/Az.Kusto.private.dll') + + # Get the private module's instance + $instance = [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module]::Instance + + # Ask for the shared functionality table + $VTable = Register-AzModule + + # Tweaks the pipeline on module load + $instance.OnModuleLoad = $VTable.OnModuleLoad + + + # Tweaks the pipeline per call + $instance.OnNewRequest = $VTable.OnNewRequest + + # Gets shared parameter values + $instance.GetParameterValue = $VTable.GetParameterValue + + # Allows shared module to listen to events from this module + $instance.EventListener = $VTable.EventListener + + # Gets shared argument completers + $instance.ArgumentCompleter = $VTable.ArgumentCompleter + + # The name of the currently selected Azure profile + $instance.ProfileName = $VTable.ProfileName + + + # Load the custom module + $customModulePath = Join-Path $PSScriptRoot './custom/Az.Kusto.custom.psm1' + if(Test-Path $customModulePath) { + $null = Import-Module -Name $customModulePath + } + + # Export nothing to clear implicit exports + Export-ModuleMember + + # Export proxy cmdlet scripts + $exportsPath = Join-Path $PSScriptRoot './exports' + $directories = Get-ChildItem -Directory -Path $exportsPath + $profileDirectory = $null + if($instance.ProfileName) { + if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { + $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } + } else { + # Don't export anything if the profile doesn't exist for the module + $exportsPath = $null + Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." + } + } elseif(($directories | Measure-Object).Count -gt 0) { + # Load the last folder if no profile is selected + $profileDirectory = $directories | Select-Object -Last 1 + } + + if($profileDirectory) { + Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" + $exportsPath = $profileDirectory.FullName + } + + if($exportsPath) { + Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } + $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath + Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) + } + + # Finalize initialization of this module + $instance.Init(); + Write-Information "Loaded Module '$($instance.Name)'" +# endregion diff --git a/swaggerci/azure-kusto/MSSharedLibKey.snk b/swaggerci/azure-kusto/MSSharedLibKey.snk new file mode 100644 index 0000000000000000000000000000000000000000..695f1b38774e839e5b90059bfb7f32df1dff4223 GIT binary patch literal 160 zcmV;R0AK$ABme*efB*oL000060ssI2Bme+XQ$aBR1ONa50098C{E+7Ye`kjtcRG*W zi8#m|)B?I?xgZ^2Sw5D;l4TxtPwG;3)3^j?qDHjEteSTF{rM+4WI`v zCD?tsZ^;k+S&r1&HRMb=j738S=;J$tCKNrc$@P|lZ +# Az.Kusto +This directory contains the PowerShell module for the Kusto service. + +--- +## Status +[![Az.Kusto](https://img.shields.io/powershellgallery/v/Az.Kusto.svg?style=flat-square&label=Az.Kusto "Az.Kusto")](https://www.powershellgallery.com/packages/Az.Kusto/) + +## 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.2.3 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). + diff --git a/swaggerci/azure-kusto/build-module.ps1 b/swaggerci/azure-kusto/build-module.ps1 new file mode 100644 index 000000000000..86ad2f1eb002 --- /dev/null +++ b/swaggerci/azure-kusto/build-module.ps1 @@ -0,0 +1,153 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated, [switch]$Run, [switch]$Test, [switch]$Docs, [switch]$Pack, [switch]$Code, [switch]$Release, [switch]$Debugger, [switch]$NoDocs) +$ErrorActionPreference = 'Stop' + +if($PSEdition -ne 'Core') { + Write-Error 'This script requires PowerShell Core to execute. [Note] Generated cmdlets will work in both PowerShell Core or Windows PowerShell.' +} + +if(-not $Isolated -and -not $Debugger) { + Write-Host -ForegroundColor Green 'Creating isolated process...' + $pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path + & "$pwsh" -NonInteractive -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + + if($LastExitCode -ne 0) { + # Build failed. Don't attempt to run the module. + return + } + + if($Test) { + . (Join-Path $PSScriptRoot 'test-module.ps1') + if($LastExitCode -ne 0) { + # Tests failed. Don't attempt to run the module. + return + } + } + + if($Docs) { + . (Join-Path $PSScriptRoot 'generate-help.ps1') + if($LastExitCode -ne 0) { + # Docs generation failed. Don't attempt to run the module. + return + } + } + + if($Pack) { + . (Join-Path $PSScriptRoot 'pack-module.ps1') + if($LastExitCode -ne 0) { + # Packing failed. Don't attempt to run the module. + return + } + } + + $runModulePath = Join-Path $PSScriptRoot 'run-module.ps1' + if($Code) { + . $runModulePath -Code + } elseif($Run) { + . $runModulePath + } else { + Write-Host -ForegroundColor Cyan "To run this module in an isolated PowerShell session, run the 'run-module.ps1' script or provide the '-Run' parameter to this script." + } + return +} + +$binFolder = Join-Path $PSScriptRoot 'bin' +$objFolder = Join-Path $PSScriptRoot 'obj' + +if(-not $Debugger) { + Write-Host -ForegroundColor Green 'Cleaning build folders...' + $null = Remove-Item -Recurse -ErrorAction SilentlyContinue -Path $binFolder, $objFolder + + if((Test-Path $binFolder) -or (Test-Path $objFolder)) { + Write-Host -ForegroundColor Cyan 'Did you forget to exit your isolated module session before rebuilding?' + Write-Error 'Unable to clean ''bin'' or ''obj'' folder. A process may have an open handle.' + } + + Write-Host -ForegroundColor Green 'Compiling module...' + $buildConfig = 'Debug' + if($Release) { + $buildConfig = 'Release' + } + dotnet publish $PSScriptRoot --verbosity quiet --configuration $buildConfig /nologo + if($LastExitCode -ne 0) { + Write-Error 'Compilation failed.' + } + + $null = Remove-Item -Recurse -ErrorAction SilentlyContinue -Path (Join-Path $binFolder 'Debug'), (Join-Path $binFolder 'Release') +} + +$dll = Join-Path $PSScriptRoot 'bin/Az.Kusto.private.dll' +if(-not (Test-Path $dll)) { + Write-Error "Unable to find output assembly in '$binFolder'." +} + +# Load DLL to use build-time cmdlets +$null = Import-Module -Name $dll + +$modulePaths = $dll +$customPsm1 = Join-Path $PSScriptRoot 'custom/Az.Kusto.custom.psm1' +if(Test-Path $customPsm1) { + $modulePaths = @($dll, $customPsm1) +} + +$exportsFolder = Join-Path $PSScriptRoot 'exports' +if(Test-Path $exportsFolder) { + $null = Get-ChildItem -Path $exportsFolder -Recurse -Exclude 'README.md' | Remove-Item -Recurse -ErrorAction SilentlyContinue +} +$null = New-Item -ItemType Directory -Force -Path $exportsFolder + +$internalFolder = Join-Path $PSScriptRoot 'internal' +if(Test-Path $internalFolder) { + $null = Get-ChildItem -Path $internalFolder -Recurse -Exclude '*.psm1', 'README.md' | Remove-Item -Recurse -ErrorAction SilentlyContinue +} +$null = New-Item -ItemType Directory -Force -Path $internalFolder + +$psd1 = Join-Path $PSScriptRoot './Az.Kusto.psd1' +$guid = Get-ModuleGuid -Psd1Path $psd1 +$moduleName = 'Az.Kusto' +$examplesFolder = Join-Path $PSScriptRoot 'examples' +$null = New-Item -ItemType Directory -Force -Path $examplesFolder + +Write-Host -ForegroundColor Green 'Creating cmdlets for specified models...' +$modelCmdlets = @() +if ($modelCmdlets.Count -gt 0) { + . (Join-Path $PSScriptRoot 'create-model-cmdlets.ps1') + CreateModelCmdlet($modelCmdlets) +} + +if($NoDocs) { + Write-Host -ForegroundColor Green 'Creating exports...' + Export-ProxyCmdlet -ModuleName $moduleName -ModulePath $modulePaths -ExportsFolder $exportsFolder -InternalFolder $internalFolder -ExcludeDocs -ExamplesFolder $examplesFolder +} else { + Write-Host -ForegroundColor Green 'Creating exports and docs...' + $moduleDescription = 'Microsoft Azure PowerShell: Kusto cmdlets' + $docsFolder = Join-Path $PSScriptRoot 'docs' + if(Test-Path $docsFolder) { + $null = Get-ChildItem -Path $docsFolder -Recurse -Exclude 'README.md' | Remove-Item -Recurse -ErrorAction SilentlyContinue + } + $null = New-Item -ItemType Directory -Force -Path $docsFolder + Export-ProxyCmdlet -ModuleName $moduleName -ModulePath $modulePaths -ExportsFolder $exportsFolder -InternalFolder $internalFolder -ModuleDescription $moduleDescription -DocsFolder $docsFolder -ExamplesFolder $examplesFolder -ModuleGuid $guid +} + +Write-Host -ForegroundColor Green 'Creating format.ps1xml...' +$formatPs1xml = Join-Path $PSScriptRoot './Az.Kusto.format.ps1xml' +Export-FormatPs1xml -FilePath $formatPs1xml + +Write-Host -ForegroundColor Green 'Creating psd1...' +$customFolder = Join-Path $PSScriptRoot 'custom' +Export-Psd1 -ExportsFolder $exportsFolder -CustomFolder $customFolder -Psd1Path $psd1 -ModuleGuid $guid + +Write-Host -ForegroundColor Green 'Creating test stubs...' +$testFolder = Join-Path $PSScriptRoot 'test' +$null = New-Item -ItemType Directory -Force -Path $testFolder +Export-TestStub -ModuleName $moduleName -ExportsFolder $exportsFolder -OutputFolder $testFolder + +Write-Host -ForegroundColor Green 'Creating example stubs...' +Export-ExampleStub -ExportsFolder $exportsFolder -OutputFolder $examplesFolder + +Write-Host -ForegroundColor Green '-------------Done-------------' diff --git a/swaggerci/azure-kusto/check-dependencies.ps1 b/swaggerci/azure-kusto/check-dependencies.ps1 new file mode 100644 index 000000000000..12b2c5d524f2 --- /dev/null +++ b/swaggerci/azure-kusto/check-dependencies.ps1 @@ -0,0 +1,57 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated, [switch]$Accounts, [switch]$Pester, [switch]$Resources) +$ErrorActionPreference = 'Stop' + +if(-not $Isolated) { + Write-Host -ForegroundColor Green 'Creating isolated process...' + $pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path + & "$pwsh" -NoExit -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + return +} + +function DownloadModule ([bool]$predicate, [string]$path, [string]$moduleName, [string]$versionMinimum, [string]$requiredVersion) { + if($predicate) { + $module = Get-Module -ListAvailable -Name $moduleName + if((-not $module) -or ($versionMinimum -and ($module | ForEach-Object { $_.Version } | Where-Object { $_ -ge [System.Version]$versionMinimum } | Measure-Object).Count -eq 0)) { + $null = New-Item -ItemType Directory -Force -Path $path + Write-Host -ForegroundColor Green "Installing local $moduleName module into '$path'..." + if ($requiredVersion) { + Find-Module -Name $moduleName -RequiredVersion $requiredVersion -Repository PSGallery | Save-Module -Path $path + }elseif($versionMinimum) { + Find-Module -Name $moduleName -MinimumVersion $versionMinimum -Repository PSGallery | Save-Module -Path $path + } else { + Find-Module -Name $moduleName -Repository PSGallery | Save-Module -Path $path + } + } + } +} + +$ProgressPreference = 'SilentlyContinue' +$all = (@($Accounts.IsPresent, $Pester.IsPresent) | Select-Object -Unique | Measure-Object).Count -eq 1 + +$localModulesPath = Join-Path $PSScriptRoot 'generated/modules' +if(Test-Path -Path $localModulesPath) { + $env:PSModulePath = "$localModulesPath$([IO.Path]::PathSeparator)$env:PSModulePath" +} + +DownloadModule -predicate ($all -or $Accounts) -path $localModulesPath -moduleName 'Az.Accounts' -versionMinimum '2.2.3' +DownloadModule -predicate ($all -or $Pester) -path $localModulesPath -moduleName 'Pester' -requiredVersion '4.10.1' + +$tools = Join-Path $PSScriptRoot 'tools' +$resourceDir = Join-Path $tools 'Resources' +$resourceModule = Join-Path $HOME '.PSSharedModules\Resources\Az.Resources.TestSupport.psm1' + +if ($Resources.IsPresent -and ((-not (Test-Path -Path $resourceModule)) -or $RegenerateSupportModule.IsPresent)) { + Write-Host -ForegroundColor Green "Building local Resource module used for test..." + Set-Location $resourceDir + $null = autorest .\README.md --use:@autorest/powershell@3.0.414 --output-folder=$HOME/.PSSharedModules/Resources + $null = Copy-Item custom/* $HOME/.PSSharedModules/Resources/custom/ + Set-Location $HOME/.PSSharedModules/Resources + $null = .\build-module.ps1 + Set-Location $PSScriptRoot +} diff --git a/swaggerci/azure-kusto/create-model-cmdlets.ps1 b/swaggerci/azure-kusto/create-model-cmdlets.ps1 new file mode 100644 index 000000000000..a42040e24b72 --- /dev/null +++ b/swaggerci/azure-kusto/create-model-cmdlets.ps1 @@ -0,0 +1,161 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +function CreateModelCmdlet { + + param([string[]]$Models) + + if ($Models.Count -eq 0) + { + return + } + + $ModelCsPath = Join-Path (Join-Path $PSScriptRoot 'generated/api') 'Models' + $ModuleName = 'Kusto' + $OutputDir = Join-Path $PSScriptRoot 'custom/autogen-model-cmdlets' + $null = New-Item -ItemType Directory -Force -Path $OutputDir + + $CsFiles = Get-ChildItem -Path $ModelCsPath -Recurse -Filter *.cs + $Content = '' + $null = $CsFiles | ForEach-Object -Process { if ($_.Name.Split('.').count -eq 2 ) + { $Content += get-content $_.fullname -raw + } } + + $Tree = [Microsoft.CodeAnalysis.CSharp.SyntaxFactory]::ParseCompilationUnit($Content) + $Nodes = $Tree.ChildNodes().ChildNodes() + foreach ($Model in $Models) + { + $InterfaceNode = $Nodes | Where-Object { ($_.Keyword.value -eq 'interface') -and ($_.Identifier.value -eq "I$Model") } + if ($InterfaceNode.count -eq 0) { + continue + } + # through a queue, we iterate all the parent models. + $Queue = @($InterfaceNode) + $visited = @("I$Model") + $AllInterfaceNodes = @() + while ($Queue.count -ne 0) + { + $AllInterfaceNodes += $Queue[0] + # Baselist contains the direct parent models. + foreach ($parent in $Queue[0].BaseList.Types) + { + if (($parent.Type.Right.Identifier.Value -ne 'IJsonSerializable') -and (-not $visited.Contains($parent.Type.Right.Identifier.Value))) + { + $Queue = [Array]$Queue + ($Nodes | Where-Object { ($_.Keyword.value -eq 'interface') -and ($_.Identifier.value -eq $parent.Type.Right.Identifier.Value) }) + $visited = [Array]$visited + $parent.Type.Right.Identifier.Value + } + } + $first, $Queue = $Queue + } + + $Namespace = $InterfaceNode.Parent.Name + $ObjectType = $Model + $ObjectTypeWithNamespace = "${Namespace}.${ObjectType}" + # remove duplicated module name + if ($ObjectType.StartsWith($ModuleName)) { + $ModulePrefix = '' + } else { + $ModulePrefix = $ModuleName + } + $OutputPath = Join-Path -ChildPath "New-Az${ModulePrefix}${ObjectType}Object.ps1" -Path $OutputDir + + $ParameterDefineScriptList = New-Object System.Collections.Generic.List[string] + $ParameterAssignScriptList = New-Object System.Collections.Generic.List[string] + foreach ($Node in $AllInterfaceNodes) + { + foreach ($Member in $Node.Members) + { + $Arguments = $Member.AttributeLists.Attributes.ArgumentList.Arguments + $Required = $false + $Description = "" + $Readonly = $False + foreach ($Argument in $Arguments) + { + if ($Argument.NameEquals.Name.Identifier.Value -eq "Required") + { + $Required = $Argument.Expression.Token.Value + } + if ($Argument.NameEquals.Name.Identifier.Value -eq "Description") + { + $Description = $Argument.Expression.Token.Value.Trim('.').replace('"', '`"') + } + if ($Argument.NameEquals.Name.Identifier.Value -eq "Readonly") + { + $Readonly = $Argument.Expression.Token.Value + } + } + if ($Readonly) + { + continue + } + $Identifier = $Member.Identifier.Value + $Type = $Member.Type.ToString().replace('?', '').Split("::")[-1] + $ParameterDefinePropertyList = New-Object System.Collections.Generic.List[string] + if ($Required) + { + $ParameterDefinePropertyList.Add("Mandatory") + } + if ($Description -ne "") + { + $ParameterDefinePropertyList.Add("HelpMessage=`"${Description}.`"") + } + $ParameterDefineProperty = [System.String]::Join(", ", $ParameterDefinePropertyList) + # check whether completer is needed + $completer = ''; + if($Type.Split('.').Split('.')[-2] -eq 'Support') { + $completer += "`n [ArgumentCompleter([${Type}])]" + } + $ParameterDefineScript = " + [Parameter($ParameterDefineProperty)]${completer} + [${Type}] + `$${Identifier}" + $ParameterDefineScriptList.Add($ParameterDefineScript) + $ParameterAssignScriptList.Add(" + if (`$PSBoundParameters.ContainsKey('${Identifier}')) { + `$Object.${Identifier} = `$${Identifier} + }") + } + } + $ParameterDefineScript = $ParameterDefineScriptList | Join-String -Separator "," + $ParameterAssignScript = $ParameterAssignScriptList | Join-String -Separator "" + + $Script = " +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create an in-memory object for ${ObjectType}. +.Description +Create an in-memory object for ${ObjectType}. + +.Outputs +${ObjectTypeWithNamespace} +.Link +https://docs.microsoft.com/en-us/powershell/module/az.${ModuleName}/new-Az${ModulePrefix}${ObjectType}Object +#> +function New-Az${ModulePrefix}${ObjectType}Object { + [OutputType('${ObjectTypeWithNamespace}')] + [CmdletBinding(PositionalBinding=`$false)] + Param( +${ParameterDefineScript} + ) + + process { + `$Object = [${ObjectTypeWithNamespace}]::New() +${ParameterAssignScript} + return `$Object + } +} +" + Set-Content -Path $OutputPath -Value $Script + } +} diff --git a/swaggerci/azure-kusto/custom/Az.Kusto.custom.psm1 b/swaggerci/azure-kusto/custom/Az.Kusto.custom.psm1 new file mode 100644 index 000000000000..ef75a556705e --- /dev/null +++ b/swaggerci/azure-kusto/custom/Az.Kusto.custom.psm1 @@ -0,0 +1,17 @@ +# region Generated + # Load the private module dll + $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '../bin/Az.Kusto.private.dll') + + # Load the internal module + $internalModulePath = Join-Path $PSScriptRoot '../internal/Az.Kusto.internal.psm1' + if(Test-Path $internalModulePath) { + $null = Import-Module -Name $internalModulePath + } + + # Export nothing to clear implicit exports + Export-ModuleMember + + # Export script cmdlets + Get-ChildItem -Path $PSScriptRoot -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } + Export-ModuleMember -Function (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot) -Alias (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot -AsAlias) +# endregion diff --git a/swaggerci/azure-kusto/custom/README.md b/swaggerci/azure-kusto/custom/README.md new file mode 100644 index 000000000000..9bc149d33cd3 --- /dev/null +++ b/swaggerci/azure-kusto/custom/README.md @@ -0,0 +1,41 @@ +# Custom +This directory contains custom implementation for non-generated cmdlets for the `Az.Kusto` module. Both scripts (`.ps1`) and C# files (`.cs`) can be implemented here. They will be used during the build process in `build-module.ps1`, and create cmdlets into the `../exports` folder. The only generated file into this folder is the `Az.Kusto.custom.psm1`. This file should not be modified. + +## Info +- Modifiable: yes +- Generated: partial +- Committed: yes +- Packaged: yes + +## Details +For `Az.Kusto` to use custom cmdlets, it does this two different ways. We **highly recommend** creating script cmdlets, as they are easier to write and allow access to the other exported cmdlets. C# cmdlets *cannot access exported cmdlets*. + +For C# cmdlets, they are compiled with the rest of the generated low-level cmdlets into the `./bin/Az.Kusto.private.dll`. The names of the cmdlets (methods) and files must follow the `[cmdletName]_[variantName]` syntax used for generated cmdlets. The `variantName` is used as the `ParameterSetName`, so use something appropriate that doesn't clash with already created variant or parameter set names. You cannot use the `ParameterSetName` property in the `Parameter` attribute on C# cmdlets. Each cmdlet must be separated into variants using the same pattern as seen in the `generated/cmdlets` folder. + +For script cmdlets, these are loaded via the `Az.Kusto.custom.psm1`. Then, during the build process, this module is loaded and processed in the same manner as the C# cmdlets. The fundamental difference is the script cmdlets use the `ParameterSetName` attribute and C# cmdlets do not. To create a script cmdlet variant of a generated cmdlet, simply decorate all parameters in the script with the new `ParameterSetName` in the `Parameter` attribute. This will appropriately treat each parameter set as a separate variant when processed to be exported during the build. + +## Purpose +This allows the modules to have cmdlets that were not defined in the REST specification. It also allows combining logic using generated cmdlets. This is a level of customization beyond what can be done using the [readme configuration options](https://github.com/Azure/autorest/blob/master/docs/powershell/options.md) that are currently available. These custom cmdlets are then referenced by the cmdlets created at build-time in the `../exports` folder. + +## Usage +The easiest way currently to start developing custom cmdlets is to copy an existing cmdlet. For C# cmdlets, copy one from the `generated/cmdlets` folder. For script cmdlets, build the project using `build-module.ps1` and copy one of the scripts from the `../exports` folder. After that, if you want to add new parameter sets, follow the guidelines in the `Details` section above. For implementing a new cmdlets, at minimum, please keep these parameters: +- Break +- DefaultProfile +- HttpPipelineAppend +- HttpPipelinePrepend +- Proxy +- ProxyCredential +- ProxyUseDefaultCredentials + +These provide functionality to our HTTP pipeline and other useful features. In script, you can forward these parameters using `$PSBoundParameters` to the other cmdlets you're calling within `Az.Kusto`. For C#, follow the usage seen in the `ProcessRecordAsync` method. + +### Attributes +For processing the cmdlets, we've created some additional attributes: +- `Microsoft.Azure.PowerShell.Cmdlets.Kusto.DescriptionAttribute` + - Used in C# cmdlets to provide a high-level description of the cmdlet. This is propagated to reference documentation via [help comments](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_comment_based_help) in the exported scripts. +- `Microsoft.Azure.PowerShell.Cmdlets.Kusto.DoNotExportAttribute` + - Used in C# and script cmdlets to suppress creating an exported cmdlet at build-time. These cmdlets will *not be exposed* by `Az.Kusto`. +- `Microsoft.Azure.PowerShell.Cmdlets.Kusto.InternalExportAttribute` + - Used in C# cmdlets to route exported cmdlets to the `../internal`, which are *not exposed* by `Az.Kusto`. For more information, see [README.md](../internal/README.md) in the `../internal` folder. +- `Microsoft.Azure.PowerShell.Cmdlets.Kusto.ProfileAttribute` + - Used in C# and script cmdlets to define which Azure profiles the cmdlet supports. This is only supported for Azure (`--azure`) modules. \ No newline at end of file diff --git a/swaggerci/azure-kusto/docs/Add-AzKustoClusterLanguageExtension.md b/swaggerci/azure-kusto/docs/Add-AzKustoClusterLanguageExtension.md new file mode 100644 index 000000000000..6e6b6adfa356 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Add-AzKustoClusterLanguageExtension.md @@ -0,0 +1,298 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/add-azkustoclusterlanguageextension +schema: 2.0.0 +--- + +# Add-AzKustoClusterLanguageExtension + +## SYNOPSIS +Add a list of language extensions that can run within KQL queries. + +## SYNTAX + +### AddExpanded (Default) +``` +Add-AzKustoClusterLanguageExtension -ClusterName -ResourceGroupName + [-SubscriptionId ] [-Value ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### Add +``` +Add-AzKustoClusterLanguageExtension -ClusterName -ResourceGroupName + -LanguageExtensionsToAdd [-SubscriptionId ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### AddViaIdentity +``` +Add-AzKustoClusterLanguageExtension -InputObject + -LanguageExtensionsToAdd [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### AddViaIdentityExpanded +``` +Add-AzKustoClusterLanguageExtension -InputObject [-Value ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Add a list of language extensions that can run within KQL queries. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Add, AddExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: AddViaIdentity, AddViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -LanguageExtensionsToAdd +The list of language extension objects. +To construct, see NOTES section for LANGUAGEEXTENSIONSTOADD properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList +Parameter Sets: Add, AddViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Add, AddExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Add, AddExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Value +The list of language extensions. +To construct, see NOTES section for VALUE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] +Parameter Sets: AddExpanded, AddViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### System.Boolean + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +LANGUAGEEXTENSIONSTOADD : The list of language extension objects. + - `[Value ]`: The list of language extensions. + - `[Name ]`: The language extension name. + +VALUE : The list of language extensions. + - `[Name ]`: The language extension name. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Add-AzKustoDatabasePrincipal.md b/swaggerci/azure-kusto/docs/Add-AzKustoDatabasePrincipal.md new file mode 100644 index 000000000000..73f52b0477e5 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Add-AzKustoDatabasePrincipal.md @@ -0,0 +1,278 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/add-azkustodatabaseprincipal +schema: 2.0.0 +--- + +# Add-AzKustoDatabasePrincipal + +## SYNOPSIS +Add Database principals permissions. + +## SYNTAX + +### AddExpanded (Default) +``` +Add-AzKustoDatabasePrincipal -ClusterName -DatabaseName -ResourceGroupName + [-SubscriptionId ] [-Value ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### Add +``` +Add-AzKustoDatabasePrincipal -ClusterName -DatabaseName -ResourceGroupName + -DatabasePrincipalsToAdd [-SubscriptionId ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### AddViaIdentity +``` +Add-AzKustoDatabasePrincipal -InputObject + -DatabasePrincipalsToAdd [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### AddViaIdentityExpanded +``` +Add-AzKustoDatabasePrincipal -InputObject [-Value ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Add Database principals permissions. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Add, AddExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Add, AddExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabasePrincipalsToAdd +The list Kusto database principals operation request. +To construct, see NOTES section for DATABASEPRINCIPALSTOADD properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest +Parameter Sets: Add, AddViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: AddViaIdentity, AddViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Add, AddExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Add, AddExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Value +The list of Kusto database principals. +To construct, see NOTES section for VALUE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[] +Parameter Sets: AddExpanded, AddViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +DATABASEPRINCIPALSTOADD : The list Kusto database principals operation request. + - `[Value ]`: The list of Kusto database principals. + - `Name `: Database principal name. + - `Role `: Database principal role. + - `Type `: Database principal type. + - `[AppId ]`: Application id - relevant only for application principal type. + - `[Email ]`: Database principal email if exists. + - `[Fqn ]`: Database principal fully qualified name. + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +VALUE : The list of Kusto database principals. + - `Name `: Database principal name. + - `Role `: Database principal role. + - `Type `: Database principal type. + - `[AppId ]`: Application id - relevant only for application principal type. + - `[Email ]`: Database principal email if exists. + - `[Fqn ]`: Database principal fully qualified name. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Az.Kusto.md b/swaggerci/azure-kusto/docs/Az.Kusto.md new file mode 100644 index 000000000000..ce4126e3de87 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Az.Kusto.md @@ -0,0 +1,184 @@ +--- +Module Name: Az.Kusto +Module Guid: 33d8204d-982b-4d55-a9ff-694f59dae3b3 +Download Help Link: https://docs.microsoft.com/en-us/powershell/module/az.kusto +Help Version: 1.0.0.0 +Locale: en-US +--- + +# Az.Kusto Module +## Description +Microsoft Azure PowerShell: Kusto cmdlets + +## Az.Kusto Cmdlets +### [Add-AzKustoClusterLanguageExtension](Add-AzKustoClusterLanguageExtension.md) +Add a list of language extensions that can run within KQL queries. + +### [Add-AzKustoDatabasePrincipal](Add-AzKustoDatabasePrincipal.md) +Add Database principals permissions. + +### [Get-AzKustoAttachedDatabaseConfiguration](Get-AzKustoAttachedDatabaseConfiguration.md) +Returns an attached database configuration. + +### [Get-AzKustoCluster](Get-AzKustoCluster.md) +Gets a Kusto cluster. + +### [Get-AzKustoClusterFollowerDatabase](Get-AzKustoClusterFollowerDatabase.md) +Returns a list of databases that are owned by this cluster and were followed by another cluster. + +### [Get-AzKustoClusterLanguageExtension](Get-AzKustoClusterLanguageExtension.md) +Returns a list of language extensions that can run within KQL queries. + +### [Get-AzKustoClusterOutboundNetworkDependencyEndpoint](Get-AzKustoClusterOutboundNetworkDependencyEndpoint.md) +Gets the network endpoints of all outbound dependencies of a Kusto cluster + +### [Get-AzKustoClusterPrincipalAssignment](Get-AzKustoClusterPrincipalAssignment.md) +Gets a Kusto cluster principalAssignment. + +### [Get-AzKustoClusterSku](Get-AzKustoClusterSku.md) +Lists eligible SKUs for Kusto resource provider. + +### [Get-AzKustoDatabase](Get-AzKustoDatabase.md) +Returns a database. + +### [Get-AzKustoDatabasePrincipal](Get-AzKustoDatabasePrincipal.md) +Returns a list of database principals of the given Kusto cluster and database. + +### [Get-AzKustoDatabasePrincipalAssignment](Get-AzKustoDatabasePrincipalAssignment.md) +Gets a Kusto cluster database principalAssignment. + +### [Get-AzKustoDataConnection](Get-AzKustoDataConnection.md) +Returns a data connection. + +### [Get-AzKustoManagedPrivateEndpoint](Get-AzKustoManagedPrivateEndpoint.md) +Gets a managed private endpoint. + +### [Get-AzKustoOperationsResult](Get-AzKustoOperationsResult.md) +Returns operation results. + +### [Get-AzKustoOperationsResultsLocation](Get-AzKustoOperationsResultsLocation.md) +Returns operation results. + +### [Get-AzKustoPrivateEndpointConnection](Get-AzKustoPrivateEndpointConnection.md) +Gets a private endpoint connection. + +### [Get-AzKustoPrivateLinkResource](Get-AzKustoPrivateLinkResource.md) +Gets a private link resource. + +### [Get-AzKustoScript](Get-AzKustoScript.md) +Gets a Kusto cluster database script. + +### [Invoke-AzKustoDataConnectionValidation](Invoke-AzKustoDataConnectionValidation.md) +Checks that the data connection parameters are valid. + +### [Invoke-AzKustoDetachClusterFollowerDatabase](Invoke-AzKustoDetachClusterFollowerDatabase.md) +Detaches all followers of a database owned by this cluster. + +### [Invoke-AzKustoDiagnoseClusterVirtualNetwork](Invoke-AzKustoDiagnoseClusterVirtualNetwork.md) +Diagnoses network connectivity status for external resources on which the service is dependent on. + +### [New-AzKustoAttachedDatabaseConfiguration](New-AzKustoAttachedDatabaseConfiguration.md) +Creates or updates an attached database configuration. + +### [New-AzKustoCluster](New-AzKustoCluster.md) +Create or update a Kusto cluster. + +### [New-AzKustoClusterPrincipalAssignment](New-AzKustoClusterPrincipalAssignment.md) +Create a Kusto cluster principalAssignment. + +### [New-AzKustoDatabase](New-AzKustoDatabase.md) +Creates or updates a database. + +### [New-AzKustoDatabasePrincipalAssignment](New-AzKustoDatabasePrincipalAssignment.md) +Creates a Kusto cluster database principalAssignment. + +### [New-AzKustoDataConnection](New-AzKustoDataConnection.md) +Creates or updates a data connection. + +### [New-AzKustoManagedPrivateEndpoint](New-AzKustoManagedPrivateEndpoint.md) +Creates a managed private endpoint. + +### [New-AzKustoPrivateEndpointConnection](New-AzKustoPrivateEndpointConnection.md) +Approve or reject a private endpoint connection with a given name. + +### [New-AzKustoScript](New-AzKustoScript.md) +Creates a Kusto database script. + +### [Remove-AzKustoAttachedDatabaseConfiguration](Remove-AzKustoAttachedDatabaseConfiguration.md) +Deletes the attached database configuration with the given name. + +### [Remove-AzKustoCluster](Remove-AzKustoCluster.md) +Deletes a Kusto cluster. + +### [Remove-AzKustoClusterLanguageExtension](Remove-AzKustoClusterLanguageExtension.md) +Remove a list of language extensions that can run within KQL queries. + +### [Remove-AzKustoClusterPrincipalAssignment](Remove-AzKustoClusterPrincipalAssignment.md) +Deletes a Kusto cluster principalAssignment. + +### [Remove-AzKustoDatabase](Remove-AzKustoDatabase.md) +Deletes the database with the given name. + +### [Remove-AzKustoDatabasePrincipal](Remove-AzKustoDatabasePrincipal.md) +Remove Database principals permissions. + +### [Remove-AzKustoDatabasePrincipalAssignment](Remove-AzKustoDatabasePrincipalAssignment.md) +Deletes a Kusto principalAssignment. + +### [Remove-AzKustoDataConnection](Remove-AzKustoDataConnection.md) +Deletes the data connection with the given name. + +### [Remove-AzKustoManagedPrivateEndpoint](Remove-AzKustoManagedPrivateEndpoint.md) +Deletes a managed private endpoint. + +### [Remove-AzKustoPrivateEndpointConnection](Remove-AzKustoPrivateEndpointConnection.md) +Deletes a private endpoint connection with a given name. + +### [Remove-AzKustoScript](Remove-AzKustoScript.md) +Deletes a Kusto principalAssignment. + +### [Start-AzKustoCluster](Start-AzKustoCluster.md) +Starts a Kusto cluster. + +### [Stop-AzKustoCluster](Stop-AzKustoCluster.md) +Stops a Kusto cluster. + +### [Test-AzKustoAttachedDatabaseConfigurationNameAvailability](Test-AzKustoAttachedDatabaseConfigurationNameAvailability.md) +Checks that the attached database configuration resource name is valid and is not already in use. + +### [Test-AzKustoClusterNameAvailability](Test-AzKustoClusterNameAvailability.md) +Checks that the cluster name is valid and is not already in use. + +### [Test-AzKustoClusterPrincipalAssignmentNameAvailability](Test-AzKustoClusterPrincipalAssignmentNameAvailability.md) +Checks that the principal assignment name is valid and is not already in use. + +### [Test-AzKustoDatabaseNameAvailability](Test-AzKustoDatabaseNameAvailability.md) +Checks that the databases resource name is valid and is not already in use. + +### [Test-AzKustoDatabasePrincipalAssignmentNameAvailability](Test-AzKustoDatabasePrincipalAssignmentNameAvailability.md) +Checks that the database principal assignment is valid and is not already in use. + +### [Test-AzKustoDataConnectionNameAvailability](Test-AzKustoDataConnectionNameAvailability.md) +Checks that the data connection name is valid and is not already in use. + +### [Test-AzKustoManagedPrivateEndpointNameAvailability](Test-AzKustoManagedPrivateEndpointNameAvailability.md) +Checks that the managed private endpoints resource name is valid and is not already in use. + +### [Test-AzKustoScriptNameAvailability](Test-AzKustoScriptNameAvailability.md) +Checks that the script name is valid and is not already in use. + +### [Update-AzKustoCluster](Update-AzKustoCluster.md) +Update a Kusto cluster. + +### [Update-AzKustoDatabase](Update-AzKustoDatabase.md) +Updates a database. + +### [Update-AzKustoDataConnection](Update-AzKustoDataConnection.md) +Updates a data connection. + +### [Update-AzKustoManagedPrivateEndpoint](Update-AzKustoManagedPrivateEndpoint.md) +Updates a managed private endpoint. + +### [Update-AzKustoScript](Update-AzKustoScript.md) +Updates a database script. + diff --git a/swaggerci/azure-kusto/docs/Get-AzKustoAttachedDatabaseConfiguration.md b/swaggerci/azure-kusto/docs/Get-AzKustoAttachedDatabaseConfiguration.md new file mode 100644 index 000000000000..89a67f43341e --- /dev/null +++ b/swaggerci/azure-kusto/docs/Get-AzKustoAttachedDatabaseConfiguration.md @@ -0,0 +1,187 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoattacheddatabaseconfiguration +schema: 2.0.0 +--- + +# Get-AzKustoAttachedDatabaseConfiguration + +## SYNOPSIS +Returns an attached database configuration. + +## SYNTAX + +### List (Default) +``` +Get-AzKustoAttachedDatabaseConfiguration -ClusterName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzKustoAttachedDatabaseConfiguration -ClusterName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzKustoAttachedDatabaseConfiguration -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Returns an attached database configuration. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the attached database configuration. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: AttachedDatabaseConfigurationName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Get-AzKustoCluster.md b/swaggerci/azure-kusto/docs/Get-AzKustoCluster.md new file mode 100644 index 000000000000..5aba463339e4 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Get-AzKustoCluster.md @@ -0,0 +1,176 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustocluster +schema: 2.0.0 +--- + +# Get-AzKustoCluster + +## SYNOPSIS +Gets a Kusto cluster. + +## SYNTAX + +### List1 (Default) +``` +Get-AzKustoCluster [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzKustoCluster -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzKustoCluster -InputObject [-DefaultProfile ] [] +``` + +### List +``` +Get-AzKustoCluster -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Gets a Kusto cluster. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: ClusterName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List, List1 +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Get-AzKustoClusterFollowerDatabase.md b/swaggerci/azure-kusto/docs/Get-AzKustoClusterFollowerDatabase.md new file mode 100644 index 000000000000..c76e64116f99 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Get-AzKustoClusterFollowerDatabase.md @@ -0,0 +1,151 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoclusterfollowerdatabase +schema: 2.0.0 +--- + +# Get-AzKustoClusterFollowerDatabase + +## SYNOPSIS +Returns a list of databases that are owned by this cluster and were followed by another cluster. + +## SYNTAX + +``` +Get-AzKustoClusterFollowerDatabase -ClusterName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Returns a list of databases that are owned by this cluster and were followed by another cluster. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Get-AzKustoClusterLanguageExtension.md b/swaggerci/azure-kusto/docs/Get-AzKustoClusterLanguageExtension.md new file mode 100644 index 000000000000..97e4a913809e --- /dev/null +++ b/swaggerci/azure-kusto/docs/Get-AzKustoClusterLanguageExtension.md @@ -0,0 +1,151 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoclusterlanguageextension +schema: 2.0.0 +--- + +# Get-AzKustoClusterLanguageExtension + +## SYNOPSIS +Returns a list of language extensions that can run within KQL queries. + +## SYNTAX + +``` +Get-AzKustoClusterLanguageExtension -ClusterName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Returns a list of language extensions that can run within KQL queries. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Get-AzKustoClusterOutboundNetworkDependencyEndpoint.md b/swaggerci/azure-kusto/docs/Get-AzKustoClusterOutboundNetworkDependencyEndpoint.md new file mode 100644 index 000000000000..6b30a44fd632 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Get-AzKustoClusterOutboundNetworkDependencyEndpoint.md @@ -0,0 +1,120 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoclusteroutboundnetworkdependencyendpoint +schema: 2.0.0 +--- + +# Get-AzKustoClusterOutboundNetworkDependencyEndpoint + +## SYNOPSIS +Gets the network endpoints of all outbound dependencies of a Kusto cluster + +## SYNTAX + +``` +Get-AzKustoClusterOutboundNetworkDependencyEndpoint -ClusterName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +## DESCRIPTION +Gets the network endpoints of all outbound dependencies of a Kusto cluster + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Get-AzKustoClusterPrincipalAssignment.md b/swaggerci/azure-kusto/docs/Get-AzKustoClusterPrincipalAssignment.md new file mode 100644 index 000000000000..2bef184bf6a2 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Get-AzKustoClusterPrincipalAssignment.md @@ -0,0 +1,187 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoclusterprincipalassignment +schema: 2.0.0 +--- + +# Get-AzKustoClusterPrincipalAssignment + +## SYNOPSIS +Gets a Kusto cluster principalAssignment. + +## SYNTAX + +### List (Default) +``` +Get-AzKustoClusterPrincipalAssignment -ClusterName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzKustoClusterPrincipalAssignment -ClusterName -PrincipalAssignmentName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzKustoClusterPrincipalAssignment -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Gets a Kusto cluster principalAssignment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PrincipalAssignmentName +The name of the Kusto principalAssignment. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Get-AzKustoClusterSku.md b/swaggerci/azure-kusto/docs/Get-AzKustoClusterSku.md new file mode 100644 index 000000000000..9173cb23fb21 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Get-AzKustoClusterSku.md @@ -0,0 +1,128 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoclustersku +schema: 2.0.0 +--- + +# Get-AzKustoClusterSku + +## SYNOPSIS +Lists eligible SKUs for Kusto resource provider. + +## SYNTAX + +### List (Default) +``` +Get-AzKustoClusterSku [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### List1 +``` +Get-AzKustoClusterSku -ClusterName -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Lists eligible SKUs for Kusto resource provider. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: List1 +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: List1 +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Get-AzKustoDataConnection.md b/swaggerci/azure-kusto/docs/Get-AzKustoDataConnection.md new file mode 100644 index 000000000000..47c2480d73a4 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Get-AzKustoDataConnection.md @@ -0,0 +1,201 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustodataconnection +schema: 2.0.0 +--- + +# Get-AzKustoDataConnection + +## SYNOPSIS +Returns a data connection. + +## SYNTAX + +### List (Default) +``` +Get-AzKustoDataConnection -ClusterName -DatabaseName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzKustoDataConnection -ClusterName -DatabaseName -Name + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzKustoDataConnection -InputObject [-DefaultProfile ] [] +``` + +## DESCRIPTION +Returns a data connection. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the data connection. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: DataConnectionName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Get-AzKustoDatabase.md b/swaggerci/azure-kusto/docs/Get-AzKustoDatabase.md new file mode 100644 index 000000000000..8450a9f3d9da --- /dev/null +++ b/swaggerci/azure-kusto/docs/Get-AzKustoDatabase.md @@ -0,0 +1,186 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustodatabase +schema: 2.0.0 +--- + +# Get-AzKustoDatabase + +## SYNOPSIS +Returns a database. + +## SYNTAX + +### List (Default) +``` +Get-AzKustoDatabase -ClusterName -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzKustoDatabase -ClusterName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzKustoDatabase -InputObject [-DefaultProfile ] [] +``` + +## DESCRIPTION +Returns a database. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: DatabaseName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Get-AzKustoDatabasePrincipal.md b/swaggerci/azure-kusto/docs/Get-AzKustoDatabasePrincipal.md new file mode 100644 index 000000000000..a2ff9aafe409 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Get-AzKustoDatabasePrincipal.md @@ -0,0 +1,166 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustodatabaseprincipal +schema: 2.0.0 +--- + +# Get-AzKustoDatabasePrincipal + +## SYNOPSIS +Returns a list of database principals of the given Kusto cluster and database. + +## SYNTAX + +``` +Get-AzKustoDatabasePrincipal -ClusterName -DatabaseName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Returns a list of database principals of the given Kusto cluster and database. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Get-AzKustoDatabasePrincipalAssignment.md b/swaggerci/azure-kusto/docs/Get-AzKustoDatabasePrincipalAssignment.md new file mode 100644 index 000000000000..d98b162a5dda --- /dev/null +++ b/swaggerci/azure-kusto/docs/Get-AzKustoDatabasePrincipalAssignment.md @@ -0,0 +1,203 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustodatabaseprincipalassignment +schema: 2.0.0 +--- + +# Get-AzKustoDatabasePrincipalAssignment + +## SYNOPSIS +Gets a Kusto cluster database principalAssignment. + +## SYNTAX + +### List (Default) +``` +Get-AzKustoDatabasePrincipalAssignment -ClusterName -DatabaseName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzKustoDatabasePrincipalAssignment -ClusterName -DatabaseName + -PrincipalAssignmentName -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzKustoDatabasePrincipalAssignment -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Gets a Kusto cluster database principalAssignment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PrincipalAssignmentName +The name of the Kusto principalAssignment. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Get-AzKustoManagedPrivateEndpoint.md b/swaggerci/azure-kusto/docs/Get-AzKustoManagedPrivateEndpoint.md new file mode 100644 index 000000000000..2106f3b5f307 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Get-AzKustoManagedPrivateEndpoint.md @@ -0,0 +1,187 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustomanagedprivateendpoint +schema: 2.0.0 +--- + +# Get-AzKustoManagedPrivateEndpoint + +## SYNOPSIS +Gets a managed private endpoint. + +## SYNTAX + +### List (Default) +``` +Get-AzKustoManagedPrivateEndpoint -ClusterName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzKustoManagedPrivateEndpoint -ClusterName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzKustoManagedPrivateEndpoint -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Gets a managed private endpoint. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the managed private endpoint. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: ManagedPrivateEndpointName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Get-AzKustoOperationsResult.md b/swaggerci/azure-kusto/docs/Get-AzKustoOperationsResult.md new file mode 100644 index 000000000000..b4d229890612 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Get-AzKustoOperationsResult.md @@ -0,0 +1,165 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustooperationsresult +schema: 2.0.0 +--- + +# Get-AzKustoOperationsResult + +## SYNOPSIS +Returns operation results. + +## SYNTAX + +### Get (Default) +``` +Get-AzKustoOperationsResult -Location -OperationId [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzKustoOperationsResult -InputObject [-DefaultProfile ] [] +``` + +## DESCRIPTION +Returns operation results. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Location +Azure location (region) name. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -OperationId +The Guid of the operation ID + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Get-AzKustoOperationsResultsLocation.md b/swaggerci/azure-kusto/docs/Get-AzKustoOperationsResultsLocation.md new file mode 100644 index 000000000000..17915f2b7762 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Get-AzKustoOperationsResultsLocation.md @@ -0,0 +1,181 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustooperationsresultslocation +schema: 2.0.0 +--- + +# Get-AzKustoOperationsResultsLocation + +## SYNOPSIS +Returns operation results. + +## SYNTAX + +### Get (Default) +``` +Get-AzKustoOperationsResultsLocation -Location -OperationId [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzKustoOperationsResultsLocation -InputObject [-DefaultProfile ] [-PassThru] + [] +``` + +## DESCRIPTION +Returns operation results. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Location +Azure location (region) name. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -OperationId +The Guid of the operation ID + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### System.Boolean + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Get-AzKustoPrivateEndpointConnection.md b/swaggerci/azure-kusto/docs/Get-AzKustoPrivateEndpointConnection.md new file mode 100644 index 000000000000..7ba2413e8ff9 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Get-AzKustoPrivateEndpointConnection.md @@ -0,0 +1,187 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoprivateendpointconnection +schema: 2.0.0 +--- + +# Get-AzKustoPrivateEndpointConnection + +## SYNOPSIS +Gets a private endpoint connection. + +## SYNTAX + +### List (Default) +``` +Get-AzKustoPrivateEndpointConnection -ClusterName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzKustoPrivateEndpointConnection -ClusterName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzKustoPrivateEndpointConnection -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Gets a private endpoint connection. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the private endpoint connection. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: PrivateEndpointConnectionName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Get-AzKustoPrivateLinkResource.md b/swaggerci/azure-kusto/docs/Get-AzKustoPrivateLinkResource.md new file mode 100644 index 000000000000..2e63357d4262 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Get-AzKustoPrivateLinkResource.md @@ -0,0 +1,186 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoprivatelinkresource +schema: 2.0.0 +--- + +# Get-AzKustoPrivateLinkResource + +## SYNOPSIS +Gets a private link resource. + +## SYNTAX + +### List (Default) +``` +Get-AzKustoPrivateLinkResource -ClusterName -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzKustoPrivateLinkResource -ClusterName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzKustoPrivateLinkResource -InputObject [-DefaultProfile ] [] +``` + +## DESCRIPTION +Gets a private link resource. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the private link resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: PrivateLinkResourceName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Get-AzKustoScript.md b/swaggerci/azure-kusto/docs/Get-AzKustoScript.md new file mode 100644 index 000000000000..c6d19d529b78 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Get-AzKustoScript.md @@ -0,0 +1,201 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoscript +schema: 2.0.0 +--- + +# Get-AzKustoScript + +## SYNOPSIS +Gets a Kusto cluster database script. + +## SYNTAX + +### List (Default) +``` +Get-AzKustoScript -ClusterName -DatabaseName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzKustoScript -ClusterName -DatabaseName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzKustoScript -InputObject [-DefaultProfile ] [] +``` + +## DESCRIPTION +Gets a Kusto cluster database script. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the Kusto database script. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: ScriptName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Invoke-AzKustoDataConnectionValidation.md b/swaggerci/azure-kusto/docs/Invoke-AzKustoDataConnectionValidation.md new file mode 100644 index 000000000000..c04ed1fb5da1 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Invoke-AzKustoDataConnectionValidation.md @@ -0,0 +1,327 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/invoke-azkustodataconnectionvalidation +schema: 2.0.0 +--- + +# Invoke-AzKustoDataConnectionValidation + +## SYNOPSIS +Checks that the data connection parameters are valid. + +## SYNTAX + +### DataExpanded (Default) +``` +Invoke-AzKustoDataConnectionValidation -ClusterName -DatabaseName + -ResourceGroupName [-SubscriptionId ] [-DataConnectionName ] + [-Kind ] [-Location ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] + [-WhatIf] [] +``` + +### Data +``` +Invoke-AzKustoDataConnectionValidation -ClusterName -DatabaseName + -ResourceGroupName -Parameter [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +### DataViaIdentity +``` +Invoke-AzKustoDataConnectionValidation -InputObject -Parameter + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +### DataViaIdentityExpanded +``` +Invoke-AzKustoDataConnectionValidation -InputObject [-DataConnectionName ] + [-Kind ] [-Location ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] + [-WhatIf] [] +``` + +## DESCRIPTION +Checks that the data connection parameters are valid. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Data, DataExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Data, DataExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DataConnectionName +The name of the data connection. + +```yaml +Type: System.String +Parameter Sets: DataExpanded, DataViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: DataViaIdentity, DataViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Kind +Kind of the endpoint for the data connection + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind +Parameter Sets: DataExpanded, DataViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +Resource location. + +```yaml +Type: System.String +Parameter Sets: DataExpanded, DataViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Parameter +Class representing an data connection validation. +To construct, see NOTES section for PARAMETER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation +Parameter Sets: Data, DataViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Data, DataExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Data, DataExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +PARAMETER : Class representing an data connection validation. + - `[AzureAsyncOperation ]`: + - `[DataConnectionName ]`: The name of the data connection. + - `[Kind ]`: Kind of the endpoint for the data connection + - `[Location ]`: Resource location. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Invoke-AzKustoDetachClusterFollowerDatabase.md b/swaggerci/azure-kusto/docs/Invoke-AzKustoDetachClusterFollowerDatabase.md new file mode 100644 index 000000000000..cd0b1087d0f7 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Invoke-AzKustoDetachClusterFollowerDatabase.md @@ -0,0 +1,310 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/invoke-azkustodetachclusterfollowerdatabase +schema: 2.0.0 +--- + +# Invoke-AzKustoDetachClusterFollowerDatabase + +## SYNOPSIS +Detaches all followers of a database owned by this cluster. + +## SYNTAX + +### DetachExpanded (Default) +``` +Invoke-AzKustoDetachClusterFollowerDatabase -ClusterName -ResourceGroupName + -AttachedDatabaseConfigurationName -ClusterResourceId [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### Detach +``` +Invoke-AzKustoDetachClusterFollowerDatabase -ClusterName -ResourceGroupName + -FollowerDatabaseToRemove [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DetachViaIdentity +``` +Invoke-AzKustoDetachClusterFollowerDatabase -InputObject + -FollowerDatabaseToRemove [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DetachViaIdentityExpanded +``` +Invoke-AzKustoDetachClusterFollowerDatabase -InputObject + -AttachedDatabaseConfigurationName -ClusterResourceId [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Detaches all followers of a database owned by this cluster. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AttachedDatabaseConfigurationName +Resource name of the attached database configuration in the follower cluster. + +```yaml +Type: System.String +Parameter Sets: DetachExpanded, DetachViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Detach, DetachExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterResourceId +Resource id of the cluster that follows a database owned by this cluster. + +```yaml +Type: System.String +Parameter Sets: DetachExpanded, DetachViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FollowerDatabaseToRemove +A class representing follower database request. +To construct, see NOTES section for FOLLOWERDATABASETOREMOVE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition +Parameter Sets: Detach, DetachViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: DetachViaIdentity, DetachViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Detach, DetachExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Detach, DetachExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### System.Boolean + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +FOLLOWERDATABASETOREMOVE : A class representing follower database request. + - `AttachedDatabaseConfigurationName `: Resource name of the attached database configuration in the follower cluster. + - `ClusterResourceId `: Resource id of the cluster that follows a database owned by this cluster. + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Invoke-AzKustoDiagnoseClusterVirtualNetwork.md b/swaggerci/azure-kusto/docs/Invoke-AzKustoDiagnoseClusterVirtualNetwork.md new file mode 100644 index 000000000000..5f73a9a9cb21 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Invoke-AzKustoDiagnoseClusterVirtualNetwork.md @@ -0,0 +1,228 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/invoke-azkustodiagnoseclustervirtualnetwork +schema: 2.0.0 +--- + +# Invoke-AzKustoDiagnoseClusterVirtualNetwork + +## SYNOPSIS +Diagnoses network connectivity status for external resources on which the service is dependent on. + +## SYNTAX + +### Diagnose (Default) +``` +Invoke-AzKustoDiagnoseClusterVirtualNetwork -ClusterName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +### DiagnoseViaIdentity +``` +Invoke-AzKustoDiagnoseClusterVirtualNetwork -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Diagnoses network connectivity status for external resources on which the service is dependent on. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Diagnose +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: DiagnoseViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Diagnose +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Diagnose +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### System.String + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/New-AzKustoAttachedDatabaseConfiguration.md b/swaggerci/azure-kusto/docs/New-AzKustoAttachedDatabaseConfiguration.md new file mode 100644 index 000000000000..76d809c706e1 --- /dev/null +++ b/swaggerci/azure-kusto/docs/New-AzKustoAttachedDatabaseConfiguration.md @@ -0,0 +1,353 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustoattacheddatabaseconfiguration +schema: 2.0.0 +--- + +# New-AzKustoAttachedDatabaseConfiguration + +## SYNOPSIS +Creates or updates an attached database configuration. + +## SYNTAX + +``` +New-AzKustoAttachedDatabaseConfiguration -ClusterName -Name -ResourceGroupName + [-SubscriptionId ] [-ClusterResourceId ] [-DatabaseName ] + [-DefaultPrincipalsModificationKind ] [-Location ] + [-TableLevelSharingPropertyExternalTablesToExclude ] + [-TableLevelSharingPropertyExternalTablesToInclude ] + [-TableLevelSharingPropertyMaterializedViewsToExclude ] + [-TableLevelSharingPropertyMaterializedViewsToInclude ] + [-TableLevelSharingPropertyTablesToExclude ] [-TableLevelSharingPropertyTablesToInclude ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Creates or updates an attached database configuration. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterResourceId +The resource id of the cluster where the databases you would like to attach reside. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database which you would like to attach, use * if you want to follow all current and future databases. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultPrincipalsModificationKind +The default principals modification kind + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +Resource location. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the attached database configuration. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: AttachedDatabaseConfigurationName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TableLevelSharingPropertyExternalTablesToExclude +List of external tables exclude from the follower database + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TableLevelSharingPropertyExternalTablesToInclude +List of external tables to include in the follower database + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TableLevelSharingPropertyMaterializedViewsToExclude +List of materialized views exclude from the follower database + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TableLevelSharingPropertyMaterializedViewsToInclude +List of materialized views to include in the follower database + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TableLevelSharingPropertyTablesToExclude +List of tables to exclude from the follower database + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TableLevelSharingPropertyTablesToInclude +List of tables to include in the follower database + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/New-AzKustoCluster.md b/swaggerci/azure-kusto/docs/New-AzKustoCluster.md new file mode 100644 index 000000000000..850a5fee2f0e --- /dev/null +++ b/swaggerci/azure-kusto/docs/New-AzKustoCluster.md @@ -0,0 +1,739 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustocluster +schema: 2.0.0 +--- + +# New-AzKustoCluster + +## SYNOPSIS +Create or update a Kusto cluster. + +## SYNTAX + +``` +New-AzKustoCluster -Name -ResourceGroupName -Location -SkuName + -SkuTier [-SubscriptionId ] [-IfMatch ] [-IfNoneMatch ] + [-AcceptedAudience ] [-AllowedFqdnList ] [-AllowedIPRangeList ] + [-EnableAutoStop] [-EnableDiskEncryption] [-EnableDoubleEncryption] [-EnablePurge] [-EnableStreamingIngest] + [-EngineType ] [-IdentityType ] [-IdentityUserAssignedIdentity ] + [-KeyVaultPropertyKeyName ] [-KeyVaultPropertyKeyVaultUri ] + [-KeyVaultPropertyKeyVersion ] [-KeyVaultPropertyUserIdentity ] + [-OptimizedAutoscaleIsEnabled] [-OptimizedAutoscaleMaximum ] [-OptimizedAutoscaleMinimum ] + [-OptimizedAutoscaleVersion ] [-PublicIPType ] + [-PublicNetworkAccess ] [-RestrictOutboundNetworkAccess ] + [-SkuCapacity ] [-Tag ] [-TrustedExternalTenant ] + [-VirtualClusterGraduationProperty ] [-VirtualNetworkConfigurationDataManagementPublicIPId ] + [-VirtualNetworkConfigurationEnginePublicIPId ] [-VirtualNetworkConfigurationSubnetId ] + [-Zone ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update a Kusto cluster. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AcceptedAudience +The cluster's accepted audiences. +To construct, see NOTES section for ACCEPTEDAUDIENCE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AllowedFqdnList +List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AllowedIPRangeList +The list of ips in the format of CIDR allowed to connect to the cluster. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnableAutoStop +A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days). + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnableDiskEncryption +A boolean value that indicates if the cluster's disks are encrypted. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnableDoubleEncryption +A boolean value that indicates if double encryption is enabled. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnablePurge +A boolean value that indicates if the purge operations are enabled. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnableStreamingIngest +A boolean value that indicates if the streaming ingest is enabled. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EngineType +The engine type + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityType +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 all identities. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityUserAssignedIdentity +The list of user identities associated with the Kusto cluster. +The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IfMatch +The ETag of the cluster. +Omit this value to always overwrite the current cluster. +Specify the last-seen ETag value to prevent accidentally overwriting concurrent changes. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IfNoneMatch +Set to '*' to allow a new cluster to be created, but to prevent updating an existing cluster. +Other values will result in a 412 Pre-condition Failed response. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -KeyVaultPropertyKeyName +The name of the key vault key. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -KeyVaultPropertyKeyVaultUri +The Uri of the key vault. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -KeyVaultPropertyKeyVersion +The version of the key vault key. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -KeyVaultPropertyUserIdentity +The user assigned identity (ARM resource id) that has access to the key. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +The geo-location where the resource lives + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: ClusterName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -OptimizedAutoscaleIsEnabled +A boolean value that indicate if the optimized autoscale feature is enabled or not. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -OptimizedAutoscaleMaximum +Maximum allowed instances count. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -OptimizedAutoscaleMinimum +Minimum allowed instances count. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -OptimizedAutoscaleVersion +The version of the template defined, for instance 1. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PublicIPType +Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PublicNetworkAccess +Public network access to the cluster is enabled by default. +When disabled, only private endpoint connection to the cluster is allowed + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RestrictOutboundNetworkAccess +Whether or not to restrict outbound network access. +Value is optional but if passed in, must be 'Enabled' or 'Disabled' + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuCapacity +The number of instances of the cluster. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +SKU name. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuTier +SKU tier. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Resource tags. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TrustedExternalTenant +The cluster's external tenants. +To construct, see NOTES section for TRUSTEDEXTERNALTENANT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VirtualClusterGraduationProperty +Virtual Cluster graduation properties + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VirtualNetworkConfigurationDataManagementPublicIPId +Data management's service public IP address resource id. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VirtualNetworkConfigurationEnginePublicIPId +Engine service's public IP address resource id. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VirtualNetworkConfigurationSubnetId +The subnet resource id. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Zone +The availability zones of the cluster. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +ACCEPTEDAUDIENCE : The cluster's accepted audiences. + - `[Value ]`: GUID or valid URL representing an accepted audience. + +TRUSTEDEXTERNALTENANT : The cluster's external tenants. + - `[Value ]`: GUID representing an external tenant. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/New-AzKustoClusterPrincipalAssignment.md b/swaggerci/azure-kusto/docs/New-AzKustoClusterPrincipalAssignment.md new file mode 100644 index 000000000000..943ec2ed1aec --- /dev/null +++ b/swaggerci/azure-kusto/docs/New-AzKustoClusterPrincipalAssignment.md @@ -0,0 +1,259 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustoclusterprincipalassignment +schema: 2.0.0 +--- + +# New-AzKustoClusterPrincipalAssignment + +## SYNOPSIS +Create a Kusto cluster principalAssignment. + +## SYNTAX + +``` +New-AzKustoClusterPrincipalAssignment -ClusterName -PrincipalAssignmentName + -ResourceGroupName [-SubscriptionId ] [-PrincipalId ] + [-PrincipalType ] [-Role ] [-TenantId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create a Kusto cluster principalAssignment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrincipalAssignmentName +The name of the Kusto principalAssignment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrincipalId +The principal ID assigned to the cluster principal. +It can be a user email, application ID, or security group name. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrincipalType +Principal type. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Role +Cluster principal role. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TenantId +The tenant id of the principal + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/New-AzKustoDataConnection.md b/swaggerci/azure-kusto/docs/New-AzKustoDataConnection.md new file mode 100644 index 000000000000..93c7eec5147b --- /dev/null +++ b/swaggerci/azure-kusto/docs/New-AzKustoDataConnection.md @@ -0,0 +1,242 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustodataconnection +schema: 2.0.0 +--- + +# New-AzKustoDataConnection + +## SYNOPSIS +Creates or updates a data connection. + +## SYNTAX + +``` +New-AzKustoDataConnection -ClusterName -DatabaseName -Name + -ResourceGroupName -Kind [-SubscriptionId ] [-Location ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Creates or updates a data connection. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Kind +Kind of the endpoint for the data connection + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +Resource location. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the data connection. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: DataConnectionName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/New-AzKustoDatabase.md b/swaggerci/azure-kusto/docs/New-AzKustoDatabase.md new file mode 100644 index 000000000000..9490515dcd4c --- /dev/null +++ b/swaggerci/azure-kusto/docs/New-AzKustoDatabase.md @@ -0,0 +1,227 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustodatabase +schema: 2.0.0 +--- + +# New-AzKustoDatabase + +## SYNOPSIS +Creates or updates a database. + +## SYNTAX + +``` +New-AzKustoDatabase -ClusterName -Name -ResourceGroupName -Kind + [-SubscriptionId ] [-Location ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] + [-WhatIf] [] +``` + +## DESCRIPTION +Creates or updates a database. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Kind +Kind of the database + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +Resource location. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: DatabaseName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/New-AzKustoDatabasePrincipalAssignment.md b/swaggerci/azure-kusto/docs/New-AzKustoDatabasePrincipalAssignment.md new file mode 100644 index 000000000000..4a2b5545ae9e --- /dev/null +++ b/swaggerci/azure-kusto/docs/New-AzKustoDatabasePrincipalAssignment.md @@ -0,0 +1,274 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustodatabaseprincipalassignment +schema: 2.0.0 +--- + +# New-AzKustoDatabasePrincipalAssignment + +## SYNOPSIS +Creates a Kusto cluster database principalAssignment. + +## SYNTAX + +``` +New-AzKustoDatabasePrincipalAssignment -ClusterName -DatabaseName + -PrincipalAssignmentName -ResourceGroupName [-SubscriptionId ] + [-PrincipalId ] [-PrincipalType ] [-Role ] [-TenantId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Creates a Kusto cluster database principalAssignment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrincipalAssignmentName +The name of the Kusto principalAssignment. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrincipalId +The principal ID assigned to the database principal. +It can be a user email, application ID, or security group name. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrincipalType +Principal type. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Role +Database principal role. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TenantId +The tenant id of the principal + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/New-AzKustoManagedPrivateEndpoint.md b/swaggerci/azure-kusto/docs/New-AzKustoManagedPrivateEndpoint.md new file mode 100644 index 000000000000..dcc771ad8db9 --- /dev/null +++ b/swaggerci/azure-kusto/docs/New-AzKustoManagedPrivateEndpoint.md @@ -0,0 +1,258 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustomanagedprivateendpoint +schema: 2.0.0 +--- + +# New-AzKustoManagedPrivateEndpoint + +## SYNOPSIS +Creates a managed private endpoint. + +## SYNTAX + +``` +New-AzKustoManagedPrivateEndpoint -ClusterName -Name -ResourceGroupName + [-SubscriptionId ] [-GroupId ] [-PrivateLinkResourceId ] + [-PrivateLinkResourceRegion ] [-RequestMessage ] [-DefaultProfile ] [-AsJob] + [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Creates a managed private endpoint. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GroupId +The groupId in which the managed private endpoint is created. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the managed private endpoint. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: ManagedPrivateEndpointName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrivateLinkResourceId +The ARM resource ID of the resource for which the managed private endpoint is created. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrivateLinkResourceRegion +The region of the resource to which the managed private endpoint is created. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RequestMessage +The user request message. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/New-AzKustoPrivateEndpointConnection.md b/swaggerci/azure-kusto/docs/New-AzKustoPrivateEndpointConnection.md new file mode 100644 index 000000000000..b997e4391ff2 --- /dev/null +++ b/swaggerci/azure-kusto/docs/New-AzKustoPrivateEndpointConnection.md @@ -0,0 +1,228 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustoprivateendpointconnection +schema: 2.0.0 +--- + +# New-AzKustoPrivateEndpointConnection + +## SYNOPSIS +Approve or reject a private endpoint connection with a given name. + +## SYNTAX + +``` +New-AzKustoPrivateEndpointConnection -ClusterName -Name -ResourceGroupName + [-SubscriptionId ] [-PrivateLinkServiceConnectionStateDescription ] + [-PrivateLinkServiceConnectionStateStatus ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Approve or reject a private endpoint connection with a given name. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the private endpoint connection. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: PrivateEndpointConnectionName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrivateLinkServiceConnectionStateDescription +The private link service connection description. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrivateLinkServiceConnectionStateStatus +The private link service connection status. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/New-AzKustoScript.md b/swaggerci/azure-kusto/docs/New-AzKustoScript.md new file mode 100644 index 000000000000..d3de445bd9da --- /dev/null +++ b/swaggerci/azure-kusto/docs/New-AzKustoScript.md @@ -0,0 +1,293 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustoscript +schema: 2.0.0 +--- + +# New-AzKustoScript + +## SYNOPSIS +Creates a Kusto database script. + +## SYNTAX + +``` +New-AzKustoScript -ClusterName -DatabaseName -Name -ResourceGroupName + [-SubscriptionId ] [-ContinueOnError] [-ForceUpdateTag ] [-ScriptContent ] + [-ScriptUrl ] [-ScriptUrlSasToken ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Creates a Kusto database script. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ContinueOnError +Flag that indicates whether to continue if one of the command fails. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ForceUpdateTag +A unique string. +If changed the script will be applied again. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the Kusto database script. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: ScriptName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ScriptContent +The script content. +This property should be used when the script is provide inline and not through file in a SA. +Must not be used together with scriptUrl and scriptUrlSasToken properties. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ScriptUrl +The url to the KQL script blob file. +Must not be used together with scriptContent property + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ScriptUrlSasToken +The SaS token that provide read access to the file which contain the script. +Must be provided when using scriptUrl property. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/README.md b/swaggerci/azure-kusto/docs/README.md new file mode 100644 index 000000000000..b4af2784db9e --- /dev/null +++ b/swaggerci/azure-kusto/docs/README.md @@ -0,0 +1,11 @@ +# Docs +This directory contains the documentation of the cmdlets for the `Az.Kusto` module. To run documentation generation, use the `generate-help.ps1` script at the root module folder. Files in this folder will *always be overridden on regeneration*. To update documentation examples, please use the `../examples` folder. + +## Info +- Modifiable: no +- Generated: all +- Committed: yes +- Packaged: yes + +## Details +The process of documentation generation loads `Az.Kusto` and analyzes the exported cmdlets from the module. It recognizes the [help comments](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_comment_based_help) that are generated into the scripts in the `../exports` folder. Additionally, when writing custom cmdlets in the `../custom` folder, you can use the help comments syntax, which decorate the exported scripts at build-time. The documentation examples are taken from the `../examples` folder. \ No newline at end of file diff --git a/swaggerci/azure-kusto/docs/Remove-AzKustoAttachedDatabaseConfiguration.md b/swaggerci/azure-kusto/docs/Remove-AzKustoAttachedDatabaseConfiguration.md new file mode 100644 index 000000000000..d0e65ecb3d21 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Remove-AzKustoAttachedDatabaseConfiguration.md @@ -0,0 +1,258 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustoattacheddatabaseconfiguration +schema: 2.0.0 +--- + +# Remove-AzKustoAttachedDatabaseConfiguration + +## SYNOPSIS +Deletes the attached database configuration with the given name. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzKustoAttachedDatabaseConfiguration -ClusterName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzKustoAttachedDatabaseConfiguration -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Deletes the attached database configuration with the given name. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the attached database configuration. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: AttachedDatabaseConfigurationName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### System.Boolean + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Remove-AzKustoCluster.md b/swaggerci/azure-kusto/docs/Remove-AzKustoCluster.md new file mode 100644 index 000000000000..a44909dbf5a9 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Remove-AzKustoCluster.md @@ -0,0 +1,242 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustocluster +schema: 2.0.0 +--- + +# Remove-AzKustoCluster + +## SYNOPSIS +Deletes a Kusto cluster. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzKustoCluster -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzKustoCluster -InputObject [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Deletes a Kusto cluster. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: ClusterName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### System.Boolean + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Remove-AzKustoClusterLanguageExtension.md b/swaggerci/azure-kusto/docs/Remove-AzKustoClusterLanguageExtension.md new file mode 100644 index 000000000000..7bbee5add41d --- /dev/null +++ b/swaggerci/azure-kusto/docs/Remove-AzKustoClusterLanguageExtension.md @@ -0,0 +1,298 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustoclusterlanguageextension +schema: 2.0.0 +--- + +# Remove-AzKustoClusterLanguageExtension + +## SYNOPSIS +Remove a list of language extensions that can run within KQL queries. + +## SYNTAX + +### RemoveExpanded (Default) +``` +Remove-AzKustoClusterLanguageExtension -ClusterName -ResourceGroupName + [-SubscriptionId ] [-Value ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### Remove +``` +Remove-AzKustoClusterLanguageExtension -ClusterName -ResourceGroupName + -LanguageExtensionsToRemove [-SubscriptionId ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### RemoveViaIdentity +``` +Remove-AzKustoClusterLanguageExtension -InputObject + -LanguageExtensionsToRemove [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### RemoveViaIdentityExpanded +``` +Remove-AzKustoClusterLanguageExtension -InputObject [-Value ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Remove a list of language extensions that can run within KQL queries. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Remove, RemoveExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: RemoveViaIdentity, RemoveViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -LanguageExtensionsToRemove +The list of language extension objects. +To construct, see NOTES section for LANGUAGEEXTENSIONSTOREMOVE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList +Parameter Sets: Remove, RemoveViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Remove, RemoveExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Remove, RemoveExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Value +The list of language extensions. +To construct, see NOTES section for VALUE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] +Parameter Sets: RemoveExpanded, RemoveViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### System.Boolean + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +LANGUAGEEXTENSIONSTOREMOVE : The list of language extension objects. + - `[Value ]`: The list of language extensions. + - `[Name ]`: The language extension name. + +VALUE : The list of language extensions. + - `[Name ]`: The language extension name. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Remove-AzKustoClusterPrincipalAssignment.md b/swaggerci/azure-kusto/docs/Remove-AzKustoClusterPrincipalAssignment.md new file mode 100644 index 000000000000..c4300dde8888 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Remove-AzKustoClusterPrincipalAssignment.md @@ -0,0 +1,258 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustoclusterprincipalassignment +schema: 2.0.0 +--- + +# Remove-AzKustoClusterPrincipalAssignment + +## SYNOPSIS +Deletes a Kusto cluster principalAssignment. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzKustoClusterPrincipalAssignment -ClusterName -PrincipalAssignmentName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzKustoClusterPrincipalAssignment -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Deletes a Kusto cluster principalAssignment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrincipalAssignmentName +The name of the Kusto principalAssignment. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### System.Boolean + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Remove-AzKustoDataConnection.md b/swaggerci/azure-kusto/docs/Remove-AzKustoDataConnection.md new file mode 100644 index 000000000000..bc4ff2454470 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Remove-AzKustoDataConnection.md @@ -0,0 +1,273 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustodataconnection +schema: 2.0.0 +--- + +# Remove-AzKustoDataConnection + +## SYNOPSIS +Deletes the data connection with the given name. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzKustoDataConnection -ClusterName -DatabaseName -Name + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzKustoDataConnection -InputObject [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Deletes the data connection with the given name. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the data connection. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: DataConnectionName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### System.Boolean + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Remove-AzKustoDatabase.md b/swaggerci/azure-kusto/docs/Remove-AzKustoDatabase.md new file mode 100644 index 000000000000..9be4eb459a3d --- /dev/null +++ b/swaggerci/azure-kusto/docs/Remove-AzKustoDatabase.md @@ -0,0 +1,258 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustodatabase +schema: 2.0.0 +--- + +# Remove-AzKustoDatabase + +## SYNOPSIS +Deletes the database with the given name. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzKustoDatabase -ClusterName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzKustoDatabase -InputObject [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Deletes the database with the given name. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: DatabaseName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### System.Boolean + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Remove-AzKustoDatabasePrincipal.md b/swaggerci/azure-kusto/docs/Remove-AzKustoDatabasePrincipal.md new file mode 100644 index 000000000000..c688b8632811 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Remove-AzKustoDatabasePrincipal.md @@ -0,0 +1,278 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustodatabaseprincipal +schema: 2.0.0 +--- + +# Remove-AzKustoDatabasePrincipal + +## SYNOPSIS +Remove Database principals permissions. + +## SYNTAX + +### RemoveExpanded (Default) +``` +Remove-AzKustoDatabasePrincipal -ClusterName -DatabaseName -ResourceGroupName + [-SubscriptionId ] [-Value ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### Remove +``` +Remove-AzKustoDatabasePrincipal -ClusterName -DatabaseName -ResourceGroupName + -DatabasePrincipalsToRemove [-SubscriptionId ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### RemoveViaIdentity +``` +Remove-AzKustoDatabasePrincipal -InputObject + -DatabasePrincipalsToRemove [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### RemoveViaIdentityExpanded +``` +Remove-AzKustoDatabasePrincipal -InputObject [-Value ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Remove Database principals permissions. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Remove, RemoveExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Remove, RemoveExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabasePrincipalsToRemove +The list Kusto database principals operation request. +To construct, see NOTES section for DATABASEPRINCIPALSTOREMOVE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest +Parameter Sets: Remove, RemoveViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: RemoveViaIdentity, RemoveViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Remove, RemoveExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Remove, RemoveExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Value +The list of Kusto database principals. +To construct, see NOTES section for VALUE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[] +Parameter Sets: RemoveExpanded, RemoveViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +DATABASEPRINCIPALSTOREMOVE : The list Kusto database principals operation request. + - `[Value ]`: The list of Kusto database principals. + - `Name `: Database principal name. + - `Role `: Database principal role. + - `Type `: Database principal type. + - `[AppId ]`: Application id - relevant only for application principal type. + - `[Email ]`: Database principal email if exists. + - `[Fqn ]`: Database principal fully qualified name. + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +VALUE : The list of Kusto database principals. + - `Name `: Database principal name. + - `Role `: Database principal role. + - `Type `: Database principal type. + - `[AppId ]`: Application id - relevant only for application principal type. + - `[Email ]`: Database principal email if exists. + - `[Fqn ]`: Database principal fully qualified name. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Remove-AzKustoDatabasePrincipalAssignment.md b/swaggerci/azure-kusto/docs/Remove-AzKustoDatabasePrincipalAssignment.md new file mode 100644 index 000000000000..4fa705e4a5fd --- /dev/null +++ b/swaggerci/azure-kusto/docs/Remove-AzKustoDatabasePrincipalAssignment.md @@ -0,0 +1,273 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustodatabaseprincipalassignment +schema: 2.0.0 +--- + +# Remove-AzKustoDatabasePrincipalAssignment + +## SYNOPSIS +Deletes a Kusto principalAssignment. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzKustoDatabasePrincipalAssignment -ClusterName -DatabaseName + -PrincipalAssignmentName -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzKustoDatabasePrincipalAssignment -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Deletes a Kusto principalAssignment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrincipalAssignmentName +The name of the Kusto principalAssignment. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### System.Boolean + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Remove-AzKustoManagedPrivateEndpoint.md b/swaggerci/azure-kusto/docs/Remove-AzKustoManagedPrivateEndpoint.md new file mode 100644 index 000000000000..466f65b79137 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Remove-AzKustoManagedPrivateEndpoint.md @@ -0,0 +1,258 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustomanagedprivateendpoint +schema: 2.0.0 +--- + +# Remove-AzKustoManagedPrivateEndpoint + +## SYNOPSIS +Deletes a managed private endpoint. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzKustoManagedPrivateEndpoint -ClusterName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzKustoManagedPrivateEndpoint -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Deletes a managed private endpoint. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the managed private endpoint. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: ManagedPrivateEndpointName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### System.Boolean + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Remove-AzKustoPrivateEndpointConnection.md b/swaggerci/azure-kusto/docs/Remove-AzKustoPrivateEndpointConnection.md new file mode 100644 index 000000000000..7e4e22cb3425 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Remove-AzKustoPrivateEndpointConnection.md @@ -0,0 +1,258 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustoprivateendpointconnection +schema: 2.0.0 +--- + +# Remove-AzKustoPrivateEndpointConnection + +## SYNOPSIS +Deletes a private endpoint connection with a given name. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzKustoPrivateEndpointConnection -ClusterName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzKustoPrivateEndpointConnection -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Deletes a private endpoint connection with a given name. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the private endpoint connection. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: PrivateEndpointConnectionName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### System.Boolean + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Remove-AzKustoScript.md b/swaggerci/azure-kusto/docs/Remove-AzKustoScript.md new file mode 100644 index 000000000000..44abe5c3099c --- /dev/null +++ b/swaggerci/azure-kusto/docs/Remove-AzKustoScript.md @@ -0,0 +1,273 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustoscript +schema: 2.0.0 +--- + +# Remove-AzKustoScript + +## SYNOPSIS +Deletes a Kusto principalAssignment. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzKustoScript -ClusterName -DatabaseName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzKustoScript -InputObject [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Deletes a Kusto principalAssignment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the Kusto database script. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: ScriptName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### System.Boolean + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Start-AzKustoCluster.md b/swaggerci/azure-kusto/docs/Start-AzKustoCluster.md new file mode 100644 index 000000000000..a3dd8ceabfa0 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Start-AzKustoCluster.md @@ -0,0 +1,242 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/start-azkustocluster +schema: 2.0.0 +--- + +# Start-AzKustoCluster + +## SYNOPSIS +Starts a Kusto cluster. + +## SYNTAX + +### Start (Default) +``` +Start-AzKustoCluster -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### StartViaIdentity +``` +Start-AzKustoCluster -InputObject [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Starts a Kusto cluster. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: StartViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Start +Aliases: ClusterName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Start +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Start +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### System.Boolean + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Stop-AzKustoCluster.md b/swaggerci/azure-kusto/docs/Stop-AzKustoCluster.md new file mode 100644 index 000000000000..e9010f3b8db2 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Stop-AzKustoCluster.md @@ -0,0 +1,242 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/stop-azkustocluster +schema: 2.0.0 +--- + +# Stop-AzKustoCluster + +## SYNOPSIS +Stops a Kusto cluster. + +## SYNTAX + +### Stop (Default) +``` +Stop-AzKustoCluster -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### StopViaIdentity +``` +Stop-AzKustoCluster -InputObject [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Stops a Kusto cluster. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: StopViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Stop +Aliases: ClusterName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Stop +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Stop +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### System.Boolean + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Test-AzKustoAttachedDatabaseConfigurationNameAvailability.md b/swaggerci/azure-kusto/docs/Test-AzKustoAttachedDatabaseConfigurationNameAvailability.md new file mode 100644 index 000000000000..9663904ef3ad --- /dev/null +++ b/swaggerci/azure-kusto/docs/Test-AzKustoAttachedDatabaseConfigurationNameAvailability.md @@ -0,0 +1,248 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustoattacheddatabaseconfigurationnameavailability +schema: 2.0.0 +--- + +# Test-AzKustoAttachedDatabaseConfigurationNameAvailability + +## SYNOPSIS +Checks that the attached database configuration resource name is valid and is not already in use. + +## SYNTAX + +### CheckExpanded (Default) +``` +Test-AzKustoAttachedDatabaseConfigurationNameAvailability -ClusterName -ResourceGroupName + -Name [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### Check +``` +Test-AzKustoAttachedDatabaseConfigurationNameAvailability -ClusterName -ResourceGroupName + -ResourceName [-SubscriptionId ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### CheckViaIdentity +``` +Test-AzKustoAttachedDatabaseConfigurationNameAvailability -InputObject + -ResourceName [-DefaultProfile ] [-Confirm] + [-WhatIf] [] +``` + +### CheckViaIdentityExpanded +``` +Test-AzKustoAttachedDatabaseConfigurationNameAvailability -InputObject -Name + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Checks that the attached database configuration resource name is valid and is not already in use. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: CheckViaIdentity, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Attached database resource name. + +```yaml +Type: System.String +Parameter Sets: CheckExpanded, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceName +The result returned from a AttachedDatabaseConfigurations check name availability request. +To construct, see NOTES section for RESOURCENAME properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest +Parameter Sets: Check, CheckViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +RESOURCENAME : The result returned from a AttachedDatabaseConfigurations check name availability request. + - `Name `: Attached database resource name. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Test-AzKustoClusterNameAvailability.md b/swaggerci/azure-kusto/docs/Test-AzKustoClusterNameAvailability.md new file mode 100644 index 000000000000..c3f0f461ce48 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Test-AzKustoClusterNameAvailability.md @@ -0,0 +1,230 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustoclusternameavailability +schema: 2.0.0 +--- + +# Test-AzKustoClusterNameAvailability + +## SYNOPSIS +Checks that the cluster name is valid and is not already in use. + +## SYNTAX + +### CheckExpanded (Default) +``` +Test-AzKustoClusterNameAvailability -Location -Name [-SubscriptionId ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### Check +``` +Test-AzKustoClusterNameAvailability -Location -ClusterName + [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### CheckViaIdentity +``` +Test-AzKustoClusterNameAvailability -InputObject -ClusterName + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### CheckViaIdentityExpanded +``` +Test-AzKustoClusterNameAvailability -InputObject -Name [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Checks that the cluster name is valid and is not already in use. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The result returned from a cluster check name availability request. +To construct, see NOTES section for CLUSTERNAME properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest +Parameter Sets: Check, CheckViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: CheckViaIdentity, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Location +Azure location (region) name. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Cluster name. + +```yaml +Type: System.String +Parameter Sets: CheckExpanded, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +CLUSTERNAME : The result returned from a cluster check name availability request. + - `Name `: Cluster name. + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Test-AzKustoClusterPrincipalAssignmentNameAvailability.md b/swaggerci/azure-kusto/docs/Test-AzKustoClusterPrincipalAssignmentNameAvailability.md new file mode 100644 index 000000000000..2ce11293505b --- /dev/null +++ b/swaggerci/azure-kusto/docs/Test-AzKustoClusterPrincipalAssignmentNameAvailability.md @@ -0,0 +1,248 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustoclusterprincipalassignmentnameavailability +schema: 2.0.0 +--- + +# Test-AzKustoClusterPrincipalAssignmentNameAvailability + +## SYNOPSIS +Checks that the principal assignment name is valid and is not already in use. + +## SYNTAX + +### CheckExpanded (Default) +``` +Test-AzKustoClusterPrincipalAssignmentNameAvailability -ClusterName -ResourceGroupName + -Name [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### Check +``` +Test-AzKustoClusterPrincipalAssignmentNameAvailability -ClusterName -ResourceGroupName + -PrincipalAssignmentName [-SubscriptionId ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### CheckViaIdentity +``` +Test-AzKustoClusterPrincipalAssignmentNameAvailability -InputObject + -PrincipalAssignmentName [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +### CheckViaIdentityExpanded +``` +Test-AzKustoClusterPrincipalAssignmentNameAvailability -InputObject -Name + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Checks that the principal assignment name is valid and is not already in use. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: CheckViaIdentity, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Principal Assignment resource name. + +```yaml +Type: System.String +Parameter Sets: CheckExpanded, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrincipalAssignmentName +A principal assignment check name availability request. +To construct, see NOTES section for PRINCIPALASSIGNMENTNAME properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest +Parameter Sets: Check, CheckViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +PRINCIPALASSIGNMENTNAME : A principal assignment check name availability request. + - `Name `: Principal Assignment resource name. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Test-AzKustoDataConnectionNameAvailability.md b/swaggerci/azure-kusto/docs/Test-AzKustoDataConnectionNameAvailability.md new file mode 100644 index 000000000000..7ddc772bace2 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Test-AzKustoDataConnectionNameAvailability.md @@ -0,0 +1,263 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustodataconnectionnameavailability +schema: 2.0.0 +--- + +# Test-AzKustoDataConnectionNameAvailability + +## SYNOPSIS +Checks that the data connection name is valid and is not already in use. + +## SYNTAX + +### CheckExpanded (Default) +``` +Test-AzKustoDataConnectionNameAvailability -ClusterName -DatabaseName + -ResourceGroupName -Name [-SubscriptionId ] [-DefaultProfile ] [-Confirm] + [-WhatIf] [] +``` + +### Check +``` +Test-AzKustoDataConnectionNameAvailability -ClusterName -DatabaseName + -ResourceGroupName -DataConnectionName [-SubscriptionId ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### CheckViaIdentity +``` +Test-AzKustoDataConnectionNameAvailability -InputObject + -DataConnectionName [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### CheckViaIdentityExpanded +``` +Test-AzKustoDataConnectionNameAvailability -InputObject -Name + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Checks that the data connection name is valid and is not already in use. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DataConnectionName +A data connection check name availability request. +To construct, see NOTES section for DATACONNECTIONNAME properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest +Parameter Sets: Check, CheckViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: CheckViaIdentity, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Data Connection name. + +```yaml +Type: System.String +Parameter Sets: CheckExpanded, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +DATACONNECTIONNAME : A data connection check name availability request. + - `Name `: Data Connection name. + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Test-AzKustoDatabaseNameAvailability.md b/swaggerci/azure-kusto/docs/Test-AzKustoDatabaseNameAvailability.md new file mode 100644 index 000000000000..0218b44c2a34 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Test-AzKustoDatabaseNameAvailability.md @@ -0,0 +1,263 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustodatabasenameavailability +schema: 2.0.0 +--- + +# Test-AzKustoDatabaseNameAvailability + +## SYNOPSIS +Checks that the databases resource name is valid and is not already in use. + +## SYNTAX + +### CheckExpanded (Default) +``` +Test-AzKustoDatabaseNameAvailability -ClusterName -ResourceGroupName -Name + -Type [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### Check +``` +Test-AzKustoDatabaseNameAvailability -ClusterName -ResourceGroupName + -ResourceName [-SubscriptionId ] [-DefaultProfile ] [-Confirm] + [-WhatIf] [] +``` + +### CheckViaIdentity +``` +Test-AzKustoDatabaseNameAvailability -InputObject -ResourceName + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### CheckViaIdentityExpanded +``` +Test-AzKustoDatabaseNameAvailability -InputObject -Name -Type + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Checks that the databases resource name is valid and is not already in use. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: CheckViaIdentity, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Resource name. + +```yaml +Type: System.String +Parameter Sets: CheckExpanded, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceName +The result returned from a database check name availability request. +To construct, see NOTES section for RESOURCENAME properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest +Parameter Sets: Check, CheckViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Type +The type of resource, for instance Microsoft.Kusto/clusters/databases. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type +Parameter Sets: CheckExpanded, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +RESOURCENAME : The result returned from a database check name availability request. + - `Name `: Resource name. + - `Type `: The type of resource, for instance Microsoft.Kusto/clusters/databases. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Test-AzKustoDatabasePrincipalAssignmentNameAvailability.md b/swaggerci/azure-kusto/docs/Test-AzKustoDatabasePrincipalAssignmentNameAvailability.md new file mode 100644 index 000000000000..b0bf85bd8558 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Test-AzKustoDatabasePrincipalAssignmentNameAvailability.md @@ -0,0 +1,263 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustodatabaseprincipalassignmentnameavailability +schema: 2.0.0 +--- + +# Test-AzKustoDatabasePrincipalAssignmentNameAvailability + +## SYNOPSIS +Checks that the database principal assignment is valid and is not already in use. + +## SYNTAX + +### CheckExpanded (Default) +``` +Test-AzKustoDatabasePrincipalAssignmentNameAvailability -ClusterName -DatabaseName + -ResourceGroupName -Name [-SubscriptionId ] [-DefaultProfile ] [-Confirm] + [-WhatIf] [] +``` + +### Check +``` +Test-AzKustoDatabasePrincipalAssignmentNameAvailability -ClusterName -DatabaseName + -ResourceGroupName -PrincipalAssignmentName + [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### CheckViaIdentity +``` +Test-AzKustoDatabasePrincipalAssignmentNameAvailability -InputObject + -PrincipalAssignmentName [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +### CheckViaIdentityExpanded +``` +Test-AzKustoDatabasePrincipalAssignmentNameAvailability -InputObject -Name + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Checks that the database principal assignment is valid and is not already in use. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: CheckViaIdentity, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Principal Assignment resource name. + +```yaml +Type: System.String +Parameter Sets: CheckExpanded, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrincipalAssignmentName +A principal assignment check name availability request. +To construct, see NOTES section for PRINCIPALASSIGNMENTNAME properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest +Parameter Sets: Check, CheckViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +PRINCIPALASSIGNMENTNAME : A principal assignment check name availability request. + - `Name `: Principal Assignment resource name. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Test-AzKustoManagedPrivateEndpointNameAvailability.md b/swaggerci/azure-kusto/docs/Test-AzKustoManagedPrivateEndpointNameAvailability.md new file mode 100644 index 000000000000..a02957559616 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Test-AzKustoManagedPrivateEndpointNameAvailability.md @@ -0,0 +1,248 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustomanagedprivateendpointnameavailability +schema: 2.0.0 +--- + +# Test-AzKustoManagedPrivateEndpointNameAvailability + +## SYNOPSIS +Checks that the managed private endpoints resource name is valid and is not already in use. + +## SYNTAX + +### CheckExpanded (Default) +``` +Test-AzKustoManagedPrivateEndpointNameAvailability -ClusterName -ResourceGroupName + -Name [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### Check +``` +Test-AzKustoManagedPrivateEndpointNameAvailability -ClusterName -ResourceGroupName + -ResourceName [-SubscriptionId ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### CheckViaIdentity +``` +Test-AzKustoManagedPrivateEndpointNameAvailability -InputObject + -ResourceName [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### CheckViaIdentityExpanded +``` +Test-AzKustoManagedPrivateEndpointNameAvailability -InputObject -Name + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Checks that the managed private endpoints resource name is valid and is not already in use. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: CheckViaIdentity, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Managed private endpoint resource name. + +```yaml +Type: System.String +Parameter Sets: CheckExpanded, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceName +The result returned from a managedPrivateEndpoints check name availability request. +To construct, see NOTES section for RESOURCENAME properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest +Parameter Sets: Check, CheckViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +RESOURCENAME : The result returned from a managedPrivateEndpoints check name availability request. + - `Name `: Managed private endpoint resource name. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Test-AzKustoScriptNameAvailability.md b/swaggerci/azure-kusto/docs/Test-AzKustoScriptNameAvailability.md new file mode 100644 index 000000000000..a933667b61c8 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Test-AzKustoScriptNameAvailability.md @@ -0,0 +1,262 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustoscriptnameavailability +schema: 2.0.0 +--- + +# Test-AzKustoScriptNameAvailability + +## SYNOPSIS +Checks that the script name is valid and is not already in use. + +## SYNTAX + +### CheckExpanded (Default) +``` +Test-AzKustoScriptNameAvailability -ClusterName -DatabaseName -ResourceGroupName + -Name [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### Check +``` +Test-AzKustoScriptNameAvailability -ClusterName -DatabaseName -ResourceGroupName + -ScriptName [-SubscriptionId ] [-DefaultProfile ] [-Confirm] + [-WhatIf] [] +``` + +### CheckViaIdentity +``` +Test-AzKustoScriptNameAvailability -InputObject -ScriptName + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### CheckViaIdentityExpanded +``` +Test-AzKustoScriptNameAvailability -InputObject -Name [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Checks that the script name is valid and is not already in use. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: CheckViaIdentity, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Script name. + +```yaml +Type: System.String +Parameter Sets: CheckExpanded, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ScriptName +A script name availability request. +To construct, see NOTES section for SCRIPTNAME properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest +Parameter Sets: Check, CheckViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Check, CheckExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +SCRIPTNAME : A script name availability request. + - `Name `: Script name. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Update-AzKustoCluster.md b/swaggerci/azure-kusto/docs/Update-AzKustoCluster.md new file mode 100644 index 000000000000..b100fbf4322f --- /dev/null +++ b/swaggerci/azure-kusto/docs/Update-AzKustoCluster.md @@ -0,0 +1,762 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/update-azkustocluster +schema: 2.0.0 +--- + +# Update-AzKustoCluster + +## SYNOPSIS +Update a Kusto cluster. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzKustoCluster -Name -ResourceGroupName [-SubscriptionId ] + [-IfMatch ] [-AcceptedAudience ] [-AllowedFqdnList ] + [-AllowedIPRangeList ] [-EnableAutoStop] [-EnableDiskEncryption] [-EnableDoubleEncryption] + [-EnablePurge] [-EnableStreamingIngest] [-EngineType ] [-IdentityType ] + [-IdentityUserAssignedIdentity ] [-KeyVaultPropertyKeyName ] + [-KeyVaultPropertyKeyVaultUri ] [-KeyVaultPropertyKeyVersion ] + [-KeyVaultPropertyUserIdentity ] [-Location ] [-OptimizedAutoscaleIsEnabled] + [-OptimizedAutoscaleMaximum ] [-OptimizedAutoscaleMinimum ] + [-OptimizedAutoscaleVersion ] [-PublicIPType ] + [-PublicNetworkAccess ] [-RestrictOutboundNetworkAccess ] + [-SkuCapacity ] [-SkuName ] [-SkuTier ] [-Tag ] + [-TrustedExternalTenant ] [-VirtualClusterGraduationProperty ] + [-VirtualNetworkConfigurationDataManagementPublicIPId ] + [-VirtualNetworkConfigurationEnginePublicIPId ] [-VirtualNetworkConfigurationSubnetId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzKustoCluster -InputObject [-IfMatch ] + [-AcceptedAudience ] [-AllowedFqdnList ] [-AllowedIPRangeList ] + [-EnableAutoStop] [-EnableDiskEncryption] [-EnableDoubleEncryption] [-EnablePurge] [-EnableStreamingIngest] + [-EngineType ] [-IdentityType ] [-IdentityUserAssignedIdentity ] + [-KeyVaultPropertyKeyName ] [-KeyVaultPropertyKeyVaultUri ] + [-KeyVaultPropertyKeyVersion ] [-KeyVaultPropertyUserIdentity ] [-Location ] + [-OptimizedAutoscaleIsEnabled] [-OptimizedAutoscaleMaximum ] [-OptimizedAutoscaleMinimum ] + [-OptimizedAutoscaleVersion ] [-PublicIPType ] + [-PublicNetworkAccess ] [-RestrictOutboundNetworkAccess ] + [-SkuCapacity ] [-SkuName ] [-SkuTier ] [-Tag ] + [-TrustedExternalTenant ] [-VirtualClusterGraduationProperty ] + [-VirtualNetworkConfigurationDataManagementPublicIPId ] + [-VirtualNetworkConfigurationEnginePublicIPId ] [-VirtualNetworkConfigurationSubnetId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Update a Kusto cluster. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AcceptedAudience +The cluster's accepted audiences. +To construct, see NOTES section for ACCEPTEDAUDIENCE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AllowedFqdnList +List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AllowedIPRangeList +The list of ips in the format of CIDR allowed to connect to the cluster. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnableAutoStop +A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days). + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnableDiskEncryption +A boolean value that indicates if the cluster's disks are encrypted. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnableDoubleEncryption +A boolean value that indicates if double encryption is enabled. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnablePurge +A boolean value that indicates if the purge operations are enabled. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnableStreamingIngest +A boolean value that indicates if the streaming ingest is enabled. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EngineType +The engine type + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityType +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 all identities. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityUserAssignedIdentity +The list of user identities associated with the Kusto cluster. +The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IfMatch +The ETag of the cluster. +Omit this value to always overwrite the current cluster. +Specify the last-seen ETag value to prevent accidentally overwriting concurrent changes. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -KeyVaultPropertyKeyName +The name of the key vault key. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -KeyVaultPropertyKeyVaultUri +The Uri of the key vault. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -KeyVaultPropertyKeyVersion +The version of the key vault key. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -KeyVaultPropertyUserIdentity +The user assigned identity (ARM resource id) that has access to the key. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +Resource location. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: ClusterName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -OptimizedAutoscaleIsEnabled +A boolean value that indicate if the optimized autoscale feature is enabled or not. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -OptimizedAutoscaleMaximum +Maximum allowed instances count. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -OptimizedAutoscaleMinimum +Minimum allowed instances count. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -OptimizedAutoscaleVersion +The version of the template defined, for instance 1. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PublicIPType +Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PublicNetworkAccess +Public network access to the cluster is enabled by default. +When disabled, only private endpoint connection to the cluster is allowed + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RestrictOutboundNetworkAccess +Whether or not to restrict outbound network access. +Value is optional but if passed in, must be 'Enabled' or 'Disabled' + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuCapacity +The number of instances of the cluster. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +SKU name. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuTier +SKU tier. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Resource tags. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TrustedExternalTenant +The cluster's external tenants. +To construct, see NOTES section for TRUSTEDEXTERNALTENANT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VirtualClusterGraduationProperty +Virtual Cluster graduation properties + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VirtualNetworkConfigurationDataManagementPublicIPId +Data management's service public IP address resource id. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VirtualNetworkConfigurationEnginePublicIPId +Engine service's public IP address resource id. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VirtualNetworkConfigurationSubnetId +The subnet resource id. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +ACCEPTEDAUDIENCE : The cluster's accepted audiences. + - `[Value ]`: GUID or valid URL representing an accepted audience. + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +TRUSTEDEXTERNALTENANT : The cluster's external tenants. + - `[Value ]`: GUID representing an external tenant. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Update-AzKustoDataConnection.md b/swaggerci/azure-kusto/docs/Update-AzKustoDataConnection.md new file mode 100644 index 000000000000..11e00d0b1c90 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Update-AzKustoDataConnection.md @@ -0,0 +1,288 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/update-azkustodataconnection +schema: 2.0.0 +--- + +# Update-AzKustoDataConnection + +## SYNOPSIS +Updates a data connection. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzKustoDataConnection -ClusterName -DatabaseName -Name + -ResourceGroupName -Kind [-SubscriptionId ] [-Location ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzKustoDataConnection -InputObject -Kind [-Location ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Updates a data connection. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Kind +Kind of the endpoint for the data connection + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +Resource location. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the data connection. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: DataConnectionName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Update-AzKustoDatabase.md b/swaggerci/azure-kusto/docs/Update-AzKustoDatabase.md new file mode 100644 index 000000000000..17f5c45f161d --- /dev/null +++ b/swaggerci/azure-kusto/docs/Update-AzKustoDatabase.md @@ -0,0 +1,273 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/update-azkustodatabase +schema: 2.0.0 +--- + +# Update-AzKustoDatabase + +## SYNOPSIS +Updates a database. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzKustoDatabase -ClusterName -Name -ResourceGroupName -Kind + [-SubscriptionId ] [-Location ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] + [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzKustoDatabase -InputObject -Kind [-Location ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Updates a database. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Kind +Kind of the database + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +Resource location. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: DatabaseName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Update-AzKustoManagedPrivateEndpoint.md b/swaggerci/azure-kusto/docs/Update-AzKustoManagedPrivateEndpoint.md new file mode 100644 index 000000000000..12aa91612de2 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Update-AzKustoManagedPrivateEndpoint.md @@ -0,0 +1,305 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/update-azkustomanagedprivateendpoint +schema: 2.0.0 +--- + +# Update-AzKustoManagedPrivateEndpoint + +## SYNOPSIS +Updates a managed private endpoint. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzKustoManagedPrivateEndpoint -ClusterName -Name -ResourceGroupName + [-SubscriptionId ] [-GroupId ] [-PrivateLinkResourceId ] + [-PrivateLinkResourceRegion ] [-RequestMessage ] [-DefaultProfile ] [-AsJob] + [-NoWait] [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzKustoManagedPrivateEndpoint -InputObject [-GroupId ] + [-PrivateLinkResourceId ] [-PrivateLinkResourceRegion ] [-RequestMessage ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Updates a managed private endpoint. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GroupId +The groupId in which the managed private endpoint is created. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the managed private endpoint. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: ManagedPrivateEndpointName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrivateLinkResourceId +The ARM resource ID of the resource for which the managed private endpoint is created. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PrivateLinkResourceRegion +The region of the resource to which the managed private endpoint is created. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RequestMessage +The user request message. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/docs/Update-AzKustoScript.md b/swaggerci/azure-kusto/docs/Update-AzKustoScript.md new file mode 100644 index 000000000000..08ec89fcb783 --- /dev/null +++ b/swaggerci/azure-kusto/docs/Update-AzKustoScript.md @@ -0,0 +1,340 @@ +--- +external help file: +Module Name: Az.Kusto +online version: https://docs.microsoft.com/en-us/powershell/module/az.kusto/update-azkustoscript +schema: 2.0.0 +--- + +# Update-AzKustoScript + +## SYNOPSIS +Updates a database script. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzKustoScript -ClusterName -DatabaseName -Name -ResourceGroupName + [-SubscriptionId ] [-ContinueOnError] [-ForceUpdateTag ] [-ScriptContent ] + [-ScriptUrl ] [-ScriptUrlSasToken ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzKustoScript -InputObject [-ContinueOnError] [-ForceUpdateTag ] + [-ScriptContent ] [-ScriptUrl ] [-ScriptUrlSasToken ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Updates a database script. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ClusterName +The name of the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ContinueOnError +Flag that indicates whether to continue if one of the command fails. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DatabaseName +The name of the database in the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ForceUpdateTag +A unique string. +If changed the script will be applied again. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the Kusto database script. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: ScriptName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group containing the Kusto cluster. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ScriptContent +The script content. +This property should be used when the script is provide inline and not through file in a SA. +Must not be used together with scriptUrl and scriptUrlSasToken properties. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ScriptUrl +The url to the KQL script blob file. +Must not be used together with scriptContent property + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ScriptUrlSasToken +The SaS token that provide read access to the file which contain the script. +Must be provided when using scriptUrl property. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription credentials which uniquely identify Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[AttachedDatabaseConfigurationName ]`: The name of the attached database configuration. + - `[ClusterName ]`: The name of the Kusto cluster. + - `[DataConnectionName ]`: The name of the data connection. + - `[DatabaseName ]`: The name of the database in the Kusto cluster. + - `[Id ]`: Resource identity path + - `[Location ]`: Azure location (region) name. + - `[ManagedPrivateEndpointName ]`: The name of the managed private endpoint. + - `[OperationId ]`: The Guid of the operation ID + - `[PrincipalAssignmentName ]`: The name of the Kusto principalAssignment. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection. + - `[PrivateLinkResourceName ]`: The name of the private link resource. + - `[ResourceGroupName ]`: The name of the resource group containing the Kusto cluster. + - `[ScriptName ]`: The name of the Kusto database script. + - `[SubscriptionId ]`: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/azure-kusto/examples/Add-AzKustoClusterLanguageExtension.md b/swaggerci/azure-kusto/examples/Add-AzKustoClusterLanguageExtension.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Add-AzKustoClusterLanguageExtension.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Add-AzKustoDatabasePrincipal.md b/swaggerci/azure-kusto/examples/Add-AzKustoDatabasePrincipal.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Add-AzKustoDatabasePrincipal.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Get-AzKustoAttachedDatabaseConfiguration.md b/swaggerci/azure-kusto/examples/Get-AzKustoAttachedDatabaseConfiguration.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Get-AzKustoAttachedDatabaseConfiguration.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Get-AzKustoCluster.md b/swaggerci/azure-kusto/examples/Get-AzKustoCluster.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Get-AzKustoCluster.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Get-AzKustoClusterFollowerDatabase.md b/swaggerci/azure-kusto/examples/Get-AzKustoClusterFollowerDatabase.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Get-AzKustoClusterFollowerDatabase.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Get-AzKustoClusterLanguageExtension.md b/swaggerci/azure-kusto/examples/Get-AzKustoClusterLanguageExtension.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Get-AzKustoClusterLanguageExtension.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Get-AzKustoClusterOutboundNetworkDependencyEndpoint.md b/swaggerci/azure-kusto/examples/Get-AzKustoClusterOutboundNetworkDependencyEndpoint.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Get-AzKustoClusterOutboundNetworkDependencyEndpoint.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Get-AzKustoClusterPrincipalAssignment.md b/swaggerci/azure-kusto/examples/Get-AzKustoClusterPrincipalAssignment.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Get-AzKustoClusterPrincipalAssignment.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Get-AzKustoClusterSku.md b/swaggerci/azure-kusto/examples/Get-AzKustoClusterSku.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Get-AzKustoClusterSku.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Get-AzKustoDataConnection.md b/swaggerci/azure-kusto/examples/Get-AzKustoDataConnection.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Get-AzKustoDataConnection.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Get-AzKustoDatabase.md b/swaggerci/azure-kusto/examples/Get-AzKustoDatabase.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Get-AzKustoDatabase.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Get-AzKustoDatabasePrincipal.md b/swaggerci/azure-kusto/examples/Get-AzKustoDatabasePrincipal.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Get-AzKustoDatabasePrincipal.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Get-AzKustoDatabasePrincipalAssignment.md b/swaggerci/azure-kusto/examples/Get-AzKustoDatabasePrincipalAssignment.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Get-AzKustoDatabasePrincipalAssignment.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Get-AzKustoManagedPrivateEndpoint.md b/swaggerci/azure-kusto/examples/Get-AzKustoManagedPrivateEndpoint.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Get-AzKustoManagedPrivateEndpoint.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Get-AzKustoOperationsResult.md b/swaggerci/azure-kusto/examples/Get-AzKustoOperationsResult.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Get-AzKustoOperationsResult.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Get-AzKustoOperationsResultsLocation.md b/swaggerci/azure-kusto/examples/Get-AzKustoOperationsResultsLocation.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Get-AzKustoOperationsResultsLocation.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Get-AzKustoPrivateEndpointConnection.md b/swaggerci/azure-kusto/examples/Get-AzKustoPrivateEndpointConnection.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Get-AzKustoPrivateEndpointConnection.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Get-AzKustoPrivateLinkResource.md b/swaggerci/azure-kusto/examples/Get-AzKustoPrivateLinkResource.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Get-AzKustoPrivateLinkResource.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Get-AzKustoScript.md b/swaggerci/azure-kusto/examples/Get-AzKustoScript.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Get-AzKustoScript.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Invoke-AzKustoDataConnectionValidation.md b/swaggerci/azure-kusto/examples/Invoke-AzKustoDataConnectionValidation.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Invoke-AzKustoDataConnectionValidation.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Invoke-AzKustoDetachClusterFollowerDatabase.md b/swaggerci/azure-kusto/examples/Invoke-AzKustoDetachClusterFollowerDatabase.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Invoke-AzKustoDetachClusterFollowerDatabase.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Invoke-AzKustoDiagnoseClusterVirtualNetwork.md b/swaggerci/azure-kusto/examples/Invoke-AzKustoDiagnoseClusterVirtualNetwork.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Invoke-AzKustoDiagnoseClusterVirtualNetwork.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/New-AzKustoAttachedDatabaseConfiguration.md b/swaggerci/azure-kusto/examples/New-AzKustoAttachedDatabaseConfiguration.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/New-AzKustoAttachedDatabaseConfiguration.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/New-AzKustoCluster.md b/swaggerci/azure-kusto/examples/New-AzKustoCluster.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/New-AzKustoCluster.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/New-AzKustoClusterPrincipalAssignment.md b/swaggerci/azure-kusto/examples/New-AzKustoClusterPrincipalAssignment.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/New-AzKustoClusterPrincipalAssignment.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/New-AzKustoDataConnection.md b/swaggerci/azure-kusto/examples/New-AzKustoDataConnection.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/New-AzKustoDataConnection.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/New-AzKustoDatabase.md b/swaggerci/azure-kusto/examples/New-AzKustoDatabase.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/New-AzKustoDatabase.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/New-AzKustoDatabasePrincipalAssignment.md b/swaggerci/azure-kusto/examples/New-AzKustoDatabasePrincipalAssignment.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/New-AzKustoDatabasePrincipalAssignment.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/New-AzKustoManagedPrivateEndpoint.md b/swaggerci/azure-kusto/examples/New-AzKustoManagedPrivateEndpoint.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/New-AzKustoManagedPrivateEndpoint.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/New-AzKustoPrivateEndpointConnection.md b/swaggerci/azure-kusto/examples/New-AzKustoPrivateEndpointConnection.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/New-AzKustoPrivateEndpointConnection.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/New-AzKustoScript.md b/swaggerci/azure-kusto/examples/New-AzKustoScript.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/New-AzKustoScript.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Remove-AzKustoAttachedDatabaseConfiguration.md b/swaggerci/azure-kusto/examples/Remove-AzKustoAttachedDatabaseConfiguration.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Remove-AzKustoAttachedDatabaseConfiguration.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Remove-AzKustoCluster.md b/swaggerci/azure-kusto/examples/Remove-AzKustoCluster.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Remove-AzKustoCluster.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Remove-AzKustoClusterLanguageExtension.md b/swaggerci/azure-kusto/examples/Remove-AzKustoClusterLanguageExtension.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Remove-AzKustoClusterLanguageExtension.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Remove-AzKustoClusterPrincipalAssignment.md b/swaggerci/azure-kusto/examples/Remove-AzKustoClusterPrincipalAssignment.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Remove-AzKustoClusterPrincipalAssignment.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Remove-AzKustoDataConnection.md b/swaggerci/azure-kusto/examples/Remove-AzKustoDataConnection.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Remove-AzKustoDataConnection.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Remove-AzKustoDatabase.md b/swaggerci/azure-kusto/examples/Remove-AzKustoDatabase.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Remove-AzKustoDatabase.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Remove-AzKustoDatabasePrincipal.md b/swaggerci/azure-kusto/examples/Remove-AzKustoDatabasePrincipal.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Remove-AzKustoDatabasePrincipal.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Remove-AzKustoDatabasePrincipalAssignment.md b/swaggerci/azure-kusto/examples/Remove-AzKustoDatabasePrincipalAssignment.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Remove-AzKustoDatabasePrincipalAssignment.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Remove-AzKustoManagedPrivateEndpoint.md b/swaggerci/azure-kusto/examples/Remove-AzKustoManagedPrivateEndpoint.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Remove-AzKustoManagedPrivateEndpoint.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Remove-AzKustoPrivateEndpointConnection.md b/swaggerci/azure-kusto/examples/Remove-AzKustoPrivateEndpointConnection.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Remove-AzKustoPrivateEndpointConnection.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Remove-AzKustoScript.md b/swaggerci/azure-kusto/examples/Remove-AzKustoScript.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Remove-AzKustoScript.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Start-AzKustoCluster.md b/swaggerci/azure-kusto/examples/Start-AzKustoCluster.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Start-AzKustoCluster.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Stop-AzKustoCluster.md b/swaggerci/azure-kusto/examples/Stop-AzKustoCluster.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Stop-AzKustoCluster.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Test-AzKustoAttachedDatabaseConfigurationNameAvailability.md b/swaggerci/azure-kusto/examples/Test-AzKustoAttachedDatabaseConfigurationNameAvailability.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Test-AzKustoAttachedDatabaseConfigurationNameAvailability.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Test-AzKustoClusterNameAvailability.md b/swaggerci/azure-kusto/examples/Test-AzKustoClusterNameAvailability.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Test-AzKustoClusterNameAvailability.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Test-AzKustoClusterPrincipalAssignmentNameAvailability.md b/swaggerci/azure-kusto/examples/Test-AzKustoClusterPrincipalAssignmentNameAvailability.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Test-AzKustoClusterPrincipalAssignmentNameAvailability.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Test-AzKustoDataConnectionNameAvailability.md b/swaggerci/azure-kusto/examples/Test-AzKustoDataConnectionNameAvailability.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Test-AzKustoDataConnectionNameAvailability.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Test-AzKustoDatabaseNameAvailability.md b/swaggerci/azure-kusto/examples/Test-AzKustoDatabaseNameAvailability.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Test-AzKustoDatabaseNameAvailability.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Test-AzKustoDatabasePrincipalAssignmentNameAvailability.md b/swaggerci/azure-kusto/examples/Test-AzKustoDatabasePrincipalAssignmentNameAvailability.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Test-AzKustoDatabasePrincipalAssignmentNameAvailability.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Test-AzKustoManagedPrivateEndpointNameAvailability.md b/swaggerci/azure-kusto/examples/Test-AzKustoManagedPrivateEndpointNameAvailability.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Test-AzKustoManagedPrivateEndpointNameAvailability.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Test-AzKustoScriptNameAvailability.md b/swaggerci/azure-kusto/examples/Test-AzKustoScriptNameAvailability.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Test-AzKustoScriptNameAvailability.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Update-AzKustoCluster.md b/swaggerci/azure-kusto/examples/Update-AzKustoCluster.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Update-AzKustoCluster.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Update-AzKustoDataConnection.md b/swaggerci/azure-kusto/examples/Update-AzKustoDataConnection.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Update-AzKustoDataConnection.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Update-AzKustoDatabase.md b/swaggerci/azure-kusto/examples/Update-AzKustoDatabase.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Update-AzKustoDatabase.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Update-AzKustoManagedPrivateEndpoint.md b/swaggerci/azure-kusto/examples/Update-AzKustoManagedPrivateEndpoint.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Update-AzKustoManagedPrivateEndpoint.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/examples/Update-AzKustoScript.md b/swaggerci/azure-kusto/examples/Update-AzKustoScript.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/azure-kusto/examples/Update-AzKustoScript.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/azure-kusto/export-surface.ps1 b/swaggerci/azure-kusto/export-surface.ps1 new file mode 100644 index 000000000000..2e5fee6b4ba8 --- /dev/null +++ b/swaggerci/azure-kusto/export-surface.ps1 @@ -0,0 +1,33 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated, [switch]$IncludeGeneralParameters, [switch]$UseExpandedFormat) +$ErrorActionPreference = 'Stop' + +$pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path +if(-not $Isolated) { + Write-Host -ForegroundColor Green 'Creating isolated process...' + & "$pwsh" -NonInteractive -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + return +} + +$dll = Join-Path $PSScriptRoot 'bin/Az.Kusto.private.dll' +if(-not (Test-Path $dll)) { + Write-Error "Unable to find output assembly in '$binFolder'." +} +$null = Import-Module -Name $dll + +$moduleName = 'Az.Kusto' +$exportsFolder = Join-Path $PSScriptRoot 'exports' +$resourcesFolder = Join-Path $PSScriptRoot 'resources' + +Export-CmdletSurface -ModuleName $moduleName -CmdletFolder $exportsFolder -OutputFolder $resourcesFolder -IncludeGeneralParameters $IncludeGeneralParameters.IsPresent -UseExpandedFormat $UseExpandedFormat.IsPresent +Write-Host -ForegroundColor Green "CmdletSurface file(s) created in '$resourcesFolder'" + +Export-ModelSurface -OutputFolder $resourcesFolder -UseExpandedFormat $UseExpandedFormat.IsPresent +Write-Host -ForegroundColor Green "ModelSurface file created in '$resourcesFolder'" + +Write-Host -ForegroundColor Green '-------------Done-------------' \ No newline at end of file diff --git a/swaggerci/azure-kusto/exports/Add-AzKustoClusterLanguageExtension.ps1 b/swaggerci/azure-kusto/exports/Add-AzKustoClusterLanguageExtension.ps1 new file mode 100644 index 000000000000..d64e46bfb5f9 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Add-AzKustoClusterLanguageExtension.ps1 @@ -0,0 +1,219 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Add a list of language extensions that can run within KQL queries. +.Description +Add a list of language extensions that can run within KQL queries. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +LANGUAGEEXTENSIONSTOADD : The list of language extension objects. + [Value ]: The list of language extensions. + [Name ]: The language extension name. + +VALUE : The list of language extensions. + [Name ]: The language extension name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/add-azkustoclusterlanguageextension +#> +function Add-AzKustoClusterLanguageExtension { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='AddExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Add', Mandatory)] + [Parameter(ParameterSetName='AddExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Add', Mandatory)] + [Parameter(ParameterSetName='AddExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Add')] + [Parameter(ParameterSetName='AddExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='AddViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='AddViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Add', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='AddViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList] + # The list of language extension objects. + # To construct, see NOTES section for LANGUAGEEXTENSIONSTOADD properties and create a hash table. + ${LanguageExtensionsToAdd}, + + [Parameter(ParameterSetName='AddExpanded')] + [Parameter(ParameterSetName='AddViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[]] + # The list of language extensions. + # To construct, see NOTES section for VALUE properties and create a hash table. + ${Value}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Add = 'Az.Kusto.private\Add-AzKustoClusterLanguageExtension_Add'; + AddExpanded = 'Az.Kusto.private\Add-AzKustoClusterLanguageExtension_AddExpanded'; + AddViaIdentity = 'Az.Kusto.private\Add-AzKustoClusterLanguageExtension_AddViaIdentity'; + AddViaIdentityExpanded = 'Az.Kusto.private\Add-AzKustoClusterLanguageExtension_AddViaIdentityExpanded'; + } + if (('Add', 'AddExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Add-AzKustoDatabasePrincipal.ps1 b/swaggerci/azure-kusto/exports/Add-AzKustoDatabasePrincipal.ps1 new file mode 100644 index 000000000000..87d7656110c5 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Add-AzKustoDatabasePrincipal.ps1 @@ -0,0 +1,218 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Add Database principals permissions. +.Description +Add Database principals permissions. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +DATABASEPRINCIPALSTOADD : The list Kusto database principals operation request. + [Value ]: The list of Kusto database principals. + Name : Database principal name. + Role : Database principal role. + Type : Database principal type. + [AppId ]: Application id - relevant only for application principal type. + [Email ]: Database principal email if exists. + [Fqn ]: Database principal fully qualified name. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +VALUE : The list of Kusto database principals. + Name : Database principal name. + Role : Database principal role. + Type : Database principal type. + [AppId ]: Application id - relevant only for application principal type. + [Email ]: Database principal email if exists. + [Fqn ]: Database principal fully qualified name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/add-azkustodatabaseprincipal +#> +function Add-AzKustoDatabasePrincipal { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal])] +[CmdletBinding(DefaultParameterSetName='AddExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Add', Mandatory)] + [Parameter(ParameterSetName='AddExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Add', Mandatory)] + [Parameter(ParameterSetName='AddExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Add', Mandatory)] + [Parameter(ParameterSetName='AddExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Add')] + [Parameter(ParameterSetName='AddExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='AddViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='AddViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Add', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='AddViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest] + # The list Kusto database principals operation request. + # To construct, see NOTES section for DATABASEPRINCIPALSTOADD properties and create a hash table. + ${DatabasePrincipalsToAdd}, + + [Parameter(ParameterSetName='AddExpanded')] + [Parameter(ParameterSetName='AddViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[]] + # The list of Kusto database principals. + # To construct, see NOTES section for VALUE properties and create a hash table. + ${Value}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Add = 'Az.Kusto.private\Add-AzKustoDatabasePrincipal_Add'; + AddExpanded = 'Az.Kusto.private\Add-AzKustoDatabasePrincipal_AddExpanded'; + AddViaIdentity = 'Az.Kusto.private\Add-AzKustoDatabasePrincipal_AddViaIdentity'; + AddViaIdentityExpanded = 'Az.Kusto.private\Add-AzKustoDatabasePrincipal_AddViaIdentityExpanded'; + } + if (('Add', 'AddExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Get-AzKustoAttachedDatabaseConfiguration.ps1 b/swaggerci/azure-kusto/exports/Get-AzKustoAttachedDatabaseConfiguration.ps1 new file mode 100644 index 000000000000..473082e111cc --- /dev/null +++ b/swaggerci/azure-kusto/exports/Get-AzKustoAttachedDatabaseConfiguration.ps1 @@ -0,0 +1,180 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Returns an attached database configuration. +.Description +Returns an attached database configuration. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoattacheddatabaseconfiguration +#> +function Get-AzKustoAttachedDatabaseConfiguration { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('AttachedDatabaseConfigurationName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the attached database configuration. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoAttachedDatabaseConfiguration_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoAttachedDatabaseConfiguration_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoAttachedDatabaseConfiguration_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Get-AzKustoCluster.ps1 b/swaggerci/azure-kusto/exports/Get-AzKustoCluster.ps1 new file mode 100644 index 000000000000..59c3453ca858 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Get-AzKustoCluster.ps1 @@ -0,0 +1,175 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Gets a Kusto cluster. +.Description +Gets a Kusto cluster. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustocluster +#> +function Get-AzKustoCluster { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster])] +[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ClusterName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoCluster_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoCluster_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoCluster_List'; + List1 = 'Az.Kusto.private\Get-AzKustoCluster_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Get-AzKustoClusterFollowerDatabase.ps1 b/swaggerci/azure-kusto/exports/Get-AzKustoClusterFollowerDatabase.ps1 new file mode 100644 index 000000000000..a5853215bd11 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Get-AzKustoClusterFollowerDatabase.ps1 @@ -0,0 +1,139 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Returns a list of databases that are owned by this cluster and were followed by another cluster. +.Description +Returns a list of databases that are owned by this cluster and were followed by another cluster. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoclusterfollowerdatabase +#> +function Get-AzKustoClusterFollowerDatabase { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + List = 'Az.Kusto.private\Get-AzKustoClusterFollowerDatabase_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Get-AzKustoClusterLanguageExtension.ps1 b/swaggerci/azure-kusto/exports/Get-AzKustoClusterLanguageExtension.ps1 new file mode 100644 index 000000000000..91aa42e347de --- /dev/null +++ b/swaggerci/azure-kusto/exports/Get-AzKustoClusterLanguageExtension.ps1 @@ -0,0 +1,139 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Returns a list of language extensions that can run within KQL queries. +.Description +Returns a list of language extensions that can run within KQL queries. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoclusterlanguageextension +#> +function Get-AzKustoClusterLanguageExtension { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + List = 'Az.Kusto.private\Get-AzKustoClusterLanguageExtension_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Get-AzKustoClusterOutboundNetworkDependencyEndpoint.ps1 b/swaggerci/azure-kusto/exports/Get-AzKustoClusterOutboundNetworkDependencyEndpoint.ps1 new file mode 100644 index 000000000000..497c3c04af78 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Get-AzKustoClusterOutboundNetworkDependencyEndpoint.ps1 @@ -0,0 +1,139 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Gets the network endpoints of all outbound dependencies of a Kusto cluster +.Description +Gets the network endpoints of all outbound dependencies of a Kusto cluster +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoclusteroutboundnetworkdependencyendpoint +#> +function Get-AzKustoClusterOutboundNetworkDependencyEndpoint { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + List = 'Az.Kusto.private\Get-AzKustoClusterOutboundNetworkDependencyEndpoint_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Get-AzKustoClusterPrincipalAssignment.ps1 b/swaggerci/azure-kusto/exports/Get-AzKustoClusterPrincipalAssignment.ps1 new file mode 100644 index 000000000000..524824b8b822 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Get-AzKustoClusterPrincipalAssignment.ps1 @@ -0,0 +1,179 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Gets a Kusto cluster principalAssignment. +.Description +Gets a Kusto cluster principalAssignment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoclusterprincipalassignment +#> +function Get-AzKustoClusterPrincipalAssignment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto principalAssignment. + ${PrincipalAssignmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoClusterPrincipalAssignment_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoClusterPrincipalAssignment_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoClusterPrincipalAssignment_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Get-AzKustoClusterSku.ps1 b/swaggerci/azure-kusto/exports/Get-AzKustoClusterSku.ps1 new file mode 100644 index 000000000000..41c0546d81c0 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Get-AzKustoClusterSku.ps1 @@ -0,0 +1,142 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Lists eligible SKUs for Kusto resource provider. +.Description +Lists eligible SKUs for Kusto resource provider. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoclustersku +#> +function Get-AzKustoClusterSku { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription], [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + List = 'Az.Kusto.private\Get-AzKustoClusterSku_List'; + List1 = 'Az.Kusto.private\Get-AzKustoClusterSku_List1'; + } + if (('List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Get-AzKustoDataConnection.ps1 b/swaggerci/azure-kusto/exports/Get-AzKustoDataConnection.ps1 new file mode 100644 index 000000000000..9b2859dfeacc --- /dev/null +++ b/swaggerci/azure-kusto/exports/Get-AzKustoDataConnection.ps1 @@ -0,0 +1,187 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Returns a data connection. +.Description +Returns a data connection. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustodataconnection +#> +function Get-AzKustoDataConnection { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('DataConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the data connection. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoDataConnection_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoDataConnection_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoDataConnection_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Get-AzKustoDatabase.ps1 b/swaggerci/azure-kusto/exports/Get-AzKustoDatabase.ps1 new file mode 100644 index 000000000000..92458c216de9 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Get-AzKustoDatabase.ps1 @@ -0,0 +1,180 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Returns a database. +.Description +Returns a database. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustodatabase +#> +function Get-AzKustoDatabase { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('DatabaseName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoDatabase_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoDatabase_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoDatabase_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Get-AzKustoDatabasePrincipal.ps1 b/swaggerci/azure-kusto/exports/Get-AzKustoDatabasePrincipal.ps1 new file mode 100644 index 000000000000..677d5d89d540 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Get-AzKustoDatabasePrincipal.ps1 @@ -0,0 +1,145 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Returns a list of database principals of the given Kusto cluster and database. +.Description +Returns a list of database principals of the given Kusto cluster and database. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustodatabaseprincipal +#> +function Get-AzKustoDatabasePrincipal { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + List = 'Az.Kusto.private\Get-AzKustoDatabasePrincipal_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Get-AzKustoDatabasePrincipalAssignment.ps1 b/swaggerci/azure-kusto/exports/Get-AzKustoDatabasePrincipalAssignment.ps1 new file mode 100644 index 000000000000..b72ea4a6ece5 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Get-AzKustoDatabasePrincipalAssignment.ps1 @@ -0,0 +1,186 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Gets a Kusto cluster database principalAssignment. +.Description +Gets a Kusto cluster database principalAssignment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustodatabaseprincipalassignment +#> +function Get-AzKustoDatabasePrincipalAssignment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto principalAssignment. + ${PrincipalAssignmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoDatabasePrincipalAssignment_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoDatabasePrincipalAssignment_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoDatabasePrincipalAssignment_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Get-AzKustoManagedPrivateEndpoint.ps1 b/swaggerci/azure-kusto/exports/Get-AzKustoManagedPrivateEndpoint.ps1 new file mode 100644 index 000000000000..96b1343ff9a0 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Get-AzKustoManagedPrivateEndpoint.ps1 @@ -0,0 +1,180 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Gets a managed private endpoint. +.Description +Gets a managed private endpoint. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustomanagedprivateendpoint +#> +function Get-AzKustoManagedPrivateEndpoint { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ManagedPrivateEndpointName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the managed private endpoint. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoManagedPrivateEndpoint_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoManagedPrivateEndpoint_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoManagedPrivateEndpoint_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Get-AzKustoOperationsResult.ps1 b/swaggerci/azure-kusto/exports/Get-AzKustoOperationsResult.ps1 new file mode 100644 index 000000000000..01b2923f5d6d --- /dev/null +++ b/swaggerci/azure-kusto/exports/Get-AzKustoOperationsResult.ps1 @@ -0,0 +1,169 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Returns operation results. +.Description +Returns operation results. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustooperationsresult +#> +function Get-AzKustoOperationsResult { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # Azure location (region) name. + ${Location}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The Guid of the operation ID + ${OperationId}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoOperationsResult_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoOperationsResult_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Get-AzKustoOperationsResultsLocation.ps1 b/swaggerci/azure-kusto/exports/Get-AzKustoOperationsResultsLocation.ps1 new file mode 100644 index 000000000000..a9fcd581aaad --- /dev/null +++ b/swaggerci/azure-kusto/exports/Get-AzKustoOperationsResultsLocation.ps1 @@ -0,0 +1,175 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Returns operation results. +.Description +Returns operation results. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustooperationsresultslocation +#> +function Get-AzKustoOperationsResultsLocation { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # Azure location (region) name. + ${Location}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The Guid of the operation ID + ${OperationId}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoOperationsResultsLocation_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoOperationsResultsLocation_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Get-AzKustoPrivateEndpointConnection.ps1 b/swaggerci/azure-kusto/exports/Get-AzKustoPrivateEndpointConnection.ps1 new file mode 100644 index 000000000000..4bf8ce94b2a5 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Get-AzKustoPrivateEndpointConnection.ps1 @@ -0,0 +1,180 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Gets a private endpoint connection. +.Description +Gets a private endpoint connection. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoprivateendpointconnection +#> +function Get-AzKustoPrivateEndpointConnection { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PrivateEndpointConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the private endpoint connection. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoPrivateEndpointConnection_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoPrivateEndpointConnection_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoPrivateEndpointConnection_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Get-AzKustoPrivateLinkResource.ps1 b/swaggerci/azure-kusto/exports/Get-AzKustoPrivateLinkResource.ps1 new file mode 100644 index 000000000000..d8d751cc60c1 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Get-AzKustoPrivateLinkResource.ps1 @@ -0,0 +1,180 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Gets a private link resource. +.Description +Gets a private link resource. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoprivatelinkresource +#> +function Get-AzKustoPrivateLinkResource { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PrivateLinkResourceName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the private link resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoPrivateLinkResource_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoPrivateLinkResource_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoPrivateLinkResource_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Get-AzKustoScript.ps1 b/swaggerci/azure-kusto/exports/Get-AzKustoScript.ps1 new file mode 100644 index 000000000000..b2052186b8f2 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Get-AzKustoScript.ps1 @@ -0,0 +1,187 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Gets a Kusto cluster database script. +.Description +Gets a Kusto cluster database script. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoscript +#> +function Get-AzKustoScript { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ScriptName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto database script. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoScript_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoScript_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoScript_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Invoke-AzKustoDataConnectionValidation.ps1 b/swaggerci/azure-kusto/exports/Invoke-AzKustoDataConnectionValidation.ps1 new file mode 100644 index 000000000000..cbb208144c96 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Invoke-AzKustoDataConnectionValidation.ps1 @@ -0,0 +1,232 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Checks that the data connection parameters are valid. +.Description +Checks that the data connection parameters are valid. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +PARAMETER : Class representing an data connection validation. + [AzureAsyncOperation ]: + [DataConnectionName ]: The name of the data connection. + [Kind ]: Kind of the endpoint for the data connection + [Location ]: Resource location. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/invoke-azkustodataconnectionvalidation +#> +function Invoke-AzKustoDataConnectionValidation { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult])] +[CmdletBinding(DefaultParameterSetName='DataExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Data', Mandatory)] + [Parameter(ParameterSetName='DataExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Data', Mandatory)] + [Parameter(ParameterSetName='DataExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Data', Mandatory)] + [Parameter(ParameterSetName='DataExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Data')] + [Parameter(ParameterSetName='DataExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DataViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='DataViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Data', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='DataViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation] + # Class representing an data connection validation. + # To construct, see NOTES section for PARAMETER properties and create a hash table. + ${Parameter}, + + [Parameter(ParameterSetName='DataExpanded')] + [Parameter(ParameterSetName='DataViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The name of the data connection. + ${DataConnectionName}, + + [Parameter(ParameterSetName='DataExpanded')] + [Parameter(ParameterSetName='DataViaIdentityExpanded')] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind] + # Kind of the endpoint for the data connection + ${Kind}, + + [Parameter(ParameterSetName='DataExpanded')] + [Parameter(ParameterSetName='DataViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource location. + ${Location}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Data = 'Az.Kusto.private\Invoke-AzKustoDataConnectionValidation_Data'; + DataExpanded = 'Az.Kusto.private\Invoke-AzKustoDataConnectionValidation_DataExpanded'; + DataViaIdentity = 'Az.Kusto.private\Invoke-AzKustoDataConnectionValidation_DataViaIdentity'; + DataViaIdentityExpanded = 'Az.Kusto.private\Invoke-AzKustoDataConnectionValidation_DataViaIdentityExpanded'; + } + if (('Data', 'DataExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Invoke-AzKustoDetachClusterFollowerDatabase.ps1 b/swaggerci/azure-kusto/exports/Invoke-AzKustoDetachClusterFollowerDatabase.ps1 new file mode 100644 index 000000000000..ce4143067b21 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Invoke-AzKustoDetachClusterFollowerDatabase.ps1 @@ -0,0 +1,221 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Detaches all followers of a database owned by this cluster. +.Description +Detaches all followers of a database owned by this cluster. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +FOLLOWERDATABASETOREMOVE : A class representing follower database request. + AttachedDatabaseConfigurationName : Resource name of the attached database configuration in the follower cluster. + ClusterResourceId : Resource id of the cluster that follows a database owned by this cluster. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/invoke-azkustodetachclusterfollowerdatabase +#> +function Invoke-AzKustoDetachClusterFollowerDatabase { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='DetachExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Detach', Mandatory)] + [Parameter(ParameterSetName='DetachExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Detach', Mandatory)] + [Parameter(ParameterSetName='DetachExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Detach')] + [Parameter(ParameterSetName='DetachExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DetachViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='DetachViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Detach', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='DetachViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition] + # A class representing follower database request. + # To construct, see NOTES section for FOLLOWERDATABASETOREMOVE properties and create a hash table. + ${FollowerDatabaseToRemove}, + + [Parameter(ParameterSetName='DetachExpanded', Mandatory)] + [Parameter(ParameterSetName='DetachViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource name of the attached database configuration in the follower cluster. + ${AttachedDatabaseConfigurationName}, + + [Parameter(ParameterSetName='DetachExpanded', Mandatory)] + [Parameter(ParameterSetName='DetachViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource id of the cluster that follows a database owned by this cluster. + ${ClusterResourceId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Detach = 'Az.Kusto.private\Invoke-AzKustoDetachClusterFollowerDatabase_Detach'; + DetachExpanded = 'Az.Kusto.private\Invoke-AzKustoDetachClusterFollowerDatabase_DetachExpanded'; + DetachViaIdentity = 'Az.Kusto.private\Invoke-AzKustoDetachClusterFollowerDatabase_DetachViaIdentity'; + DetachViaIdentityExpanded = 'Az.Kusto.private\Invoke-AzKustoDetachClusterFollowerDatabase_DetachViaIdentityExpanded'; + } + if (('Detach', 'DetachExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Invoke-AzKustoDiagnoseClusterVirtualNetwork.ps1 b/swaggerci/azure-kusto/exports/Invoke-AzKustoDiagnoseClusterVirtualNetwork.ps1 new file mode 100644 index 000000000000..8e53e9f87f24 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Invoke-AzKustoDiagnoseClusterVirtualNetwork.ps1 @@ -0,0 +1,181 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Diagnoses network connectivity status for external resources on which the service is dependent on. +.Description +Diagnoses network connectivity status for external resources on which the service is dependent on. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/invoke-azkustodiagnoseclustervirtualnetwork +#> +function Invoke-AzKustoDiagnoseClusterVirtualNetwork { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Diagnose', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Diagnose', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Diagnose', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Diagnose')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DiagnoseViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Diagnose = 'Az.Kusto.private\Invoke-AzKustoDiagnoseClusterVirtualNetwork_Diagnose'; + DiagnoseViaIdentity = 'Az.Kusto.private\Invoke-AzKustoDiagnoseClusterVirtualNetwork_DiagnoseViaIdentity'; + } + if (('Diagnose') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/New-AzKustoAttachedDatabaseConfiguration.ps1 b/swaggerci/azure-kusto/exports/New-AzKustoAttachedDatabaseConfiguration.ps1 new file mode 100644 index 000000000000..a40a681006ca --- /dev/null +++ b/swaggerci/azure-kusto/exports/New-AzKustoAttachedDatabaseConfiguration.ps1 @@ -0,0 +1,225 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Creates or updates an attached database configuration. +.Description +Creates or updates an attached database configuration. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustoattacheddatabaseconfiguration +#> +function New-AzKustoAttachedDatabaseConfiguration { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Alias('AttachedDatabaseConfigurationName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the attached database configuration. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The resource id of the cluster where the databases you would like to attach reside. + ${ClusterResourceId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The name of the database which you would like to attach, use * if you want to follow all current and future databases. + ${DatabaseName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind] + # The default principals modification kind + ${DefaultPrincipalsModificationKind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource location. + ${Location}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # List of external tables exclude from the follower database + ${TableLevelSharingPropertyExternalTablesToExclude}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # List of external tables to include in the follower database + ${TableLevelSharingPropertyExternalTablesToInclude}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # List of materialized views exclude from the follower database + ${TableLevelSharingPropertyMaterializedViewsToExclude}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # List of materialized views to include in the follower database + ${TableLevelSharingPropertyMaterializedViewsToInclude}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # List of tables to exclude from the follower database + ${TableLevelSharingPropertyTablesToExclude}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # List of tables to include in the follower database + ${TableLevelSharingPropertyTablesToInclude}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoAttachedDatabaseConfiguration_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/New-AzKustoCluster.ps1 b/swaggerci/azure-kusto/exports/New-AzKustoCluster.ps1 new file mode 100644 index 000000000000..a140cedf7bcb --- /dev/null +++ b/swaggerci/azure-kusto/exports/New-AzKustoCluster.ps1 @@ -0,0 +1,396 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update a Kusto cluster. +.Description +Create or update a Kusto cluster. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +ACCEPTEDAUDIENCE : The cluster's accepted audiences. + [Value ]: GUID or valid URL representing an accepted audience. + +TRUSTEDEXTERNALTENANT : The cluster's external tenants. + [Value ]: GUID representing an external tenant. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustocluster +#> +function New-AzKustoCluster { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ClusterName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Header')] + [System.String] + # The ETag of the cluster. + # Omit this value to always overwrite the current cluster. + # Specify the last-seen ETag value to prevent accidentally overwriting concurrent changes. + ${IfMatch}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Header')] + [System.String] + # Set to '*' to allow a new cluster to be created, but to prevent updating an existing cluster. + # Other values will result in a 412 Pre-condition Failed response. + ${IfNoneMatch}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName] + # SKU name. + ${SkuName}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier] + # SKU tier. + ${SkuTier}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[]] + # The cluster's accepted audiences. + # To construct, see NOTES section for ACCEPTEDAUDIENCE properties and create a hash table. + ${AcceptedAudience}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + ${AllowedFqdnList}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # The list of ips in the format of CIDR allowed to connect to the cluster. + ${AllowedIPRangeList}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days). + ${EnableAutoStop}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if the cluster's disks are encrypted. + ${EnableDiskEncryption}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if double encryption is enabled. + ${EnableDoubleEncryption}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if the purge operations are enabled. + ${EnablePurge}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if the streaming ingest is enabled. + ${EnableStreamingIngest}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType] + # The engine type + ${EngineType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType] + # 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 all identities. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the Kusto cluster. + # The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The name of the key vault key. + ${KeyVaultPropertyKeyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The Uri of the key vault. + ${KeyVaultPropertyKeyVaultUri}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The version of the key vault key. + ${KeyVaultPropertyKeyVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The user assigned identity (ARM resource id) that has access to the key. + ${KeyVaultPropertyUserIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicate if the optimized autoscale feature is enabled or not. + ${OptimizedAutoscaleIsEnabled}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Int32] + # Maximum allowed instances count. + ${OptimizedAutoscaleMaximum}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Int32] + # Minimum allowed instances count. + ${OptimizedAutoscaleMinimum}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Int32] + # The version of the template defined, for instance 1. + ${OptimizedAutoscaleVersion}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType] + # Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + ${PublicIPType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess] + # Public network access to the cluster is enabled by default. + # When disabled, only private endpoint connection to the cluster is allowed + ${PublicNetworkAccess}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag] + # Whether or not to restrict outbound network access. + # Value is optional but if passed in, must be 'Enabled' or 'Disabled' + ${RestrictOutboundNetworkAccess}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Int32] + # The number of instances of the cluster. + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[]] + # The cluster's external tenants. + # To construct, see NOTES section for TRUSTEDEXTERNALTENANT properties and create a hash table. + ${TrustedExternalTenant}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Virtual Cluster graduation properties + ${VirtualClusterGraduationProperty}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Data management's service public IP address resource id. + ${VirtualNetworkConfigurationDataManagementPublicIPId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Engine service's public IP address resource id. + ${VirtualNetworkConfigurationEnginePublicIPId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The subnet resource id. + ${VirtualNetworkConfigurationSubnetId}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # The availability zones of the cluster. + ${Zone}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoCluster_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/New-AzKustoClusterPrincipalAssignment.ps1 b/swaggerci/azure-kusto/exports/New-AzKustoClusterPrincipalAssignment.ps1 new file mode 100644 index 000000000000..e122aec00841 --- /dev/null +++ b/swaggerci/azure-kusto/exports/New-AzKustoClusterPrincipalAssignment.ps1 @@ -0,0 +1,184 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a Kusto cluster principalAssignment. +.Description +Create a Kusto cluster principalAssignment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustoclusterprincipalassignment +#> +function New-AzKustoClusterPrincipalAssignment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto principalAssignment. + ${PrincipalAssignmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The principal ID assigned to the cluster principal. + # It can be a user email, application ID, or security group name. + ${PrincipalId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType] + # Principal type. + ${PrincipalType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole] + # Cluster principal role. + ${Role}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The tenant id of the principal + ${TenantId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoClusterPrincipalAssignment_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/New-AzKustoDataConnection.ps1 b/swaggerci/azure-kusto/exports/New-AzKustoDataConnection.ps1 new file mode 100644 index 000000000000..d267e42a93a4 --- /dev/null +++ b/swaggerci/azure-kusto/exports/New-AzKustoDataConnection.ps1 @@ -0,0 +1,177 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Creates or updates a data connection. +.Description +Creates or updates a data connection. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustodataconnection +#> +function New-AzKustoDataConnection { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(Mandatory)] + [Alias('DataConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the data connection. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind] + # Kind of the endpoint for the data connection + ${Kind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource location. + ${Location}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoDataConnection_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/New-AzKustoDatabase.ps1 b/swaggerci/azure-kusto/exports/New-AzKustoDatabase.ps1 new file mode 100644 index 000000000000..8646d05a7dea --- /dev/null +++ b/swaggerci/azure-kusto/exports/New-AzKustoDatabase.ps1 @@ -0,0 +1,171 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Creates or updates a database. +.Description +Creates or updates a database. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustodatabase +#> +function New-AzKustoDatabase { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Alias('DatabaseName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind] + # Kind of the database + ${Kind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource location. + ${Location}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoDatabase_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/New-AzKustoDatabasePrincipalAssignment.ps1 b/swaggerci/azure-kusto/exports/New-AzKustoDatabasePrincipalAssignment.ps1 new file mode 100644 index 000000000000..8be5d33287d6 --- /dev/null +++ b/swaggerci/azure-kusto/exports/New-AzKustoDatabasePrincipalAssignment.ps1 @@ -0,0 +1,190 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Creates a Kusto cluster database principalAssignment. +.Description +Creates a Kusto cluster database principalAssignment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustodatabaseprincipalassignment +#> +function New-AzKustoDatabasePrincipalAssignment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto principalAssignment. + ${PrincipalAssignmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The principal ID assigned to the database principal. + # It can be a user email, application ID, or security group name. + ${PrincipalId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType] + # Principal type. + ${PrincipalType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole] + # Database principal role. + ${Role}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The tenant id of the principal + ${TenantId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoDatabasePrincipalAssignment_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/New-AzKustoManagedPrivateEndpoint.ps1 b/swaggerci/azure-kusto/exports/New-AzKustoManagedPrivateEndpoint.ps1 new file mode 100644 index 000000000000..5b11bea23c8d --- /dev/null +++ b/swaggerci/azure-kusto/exports/New-AzKustoManagedPrivateEndpoint.ps1 @@ -0,0 +1,182 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Creates a managed private endpoint. +.Description +Creates a managed private endpoint. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustomanagedprivateendpoint +#> +function New-AzKustoManagedPrivateEndpoint { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Alias('ManagedPrivateEndpointName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the managed private endpoint. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The groupId in which the managed private endpoint is created. + ${GroupId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The ARM resource ID of the resource for which the managed private endpoint is created. + ${PrivateLinkResourceId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The region of the resource to which the managed private endpoint is created. + ${PrivateLinkResourceRegion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The user request message. + ${RequestMessage}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoManagedPrivateEndpoint_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/New-AzKustoPrivateEndpointConnection.ps1 b/swaggerci/azure-kusto/exports/New-AzKustoPrivateEndpointConnection.ps1 new file mode 100644 index 000000000000..1700e4398c1a --- /dev/null +++ b/swaggerci/azure-kusto/exports/New-AzKustoPrivateEndpointConnection.ps1 @@ -0,0 +1,170 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Approve or reject a private endpoint connection with a given name. +.Description +Approve or reject a private endpoint connection with a given name. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustoprivateendpointconnection +#> +function New-AzKustoPrivateEndpointConnection { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Alias('PrivateEndpointConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the private endpoint connection. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The private link service connection description. + ${PrivateLinkServiceConnectionStateDescription}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The private link service connection status. + ${PrivateLinkServiceConnectionStateStatus}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoPrivateEndpointConnection_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/New-AzKustoScript.ps1 b/swaggerci/azure-kusto/exports/New-AzKustoScript.ps1 new file mode 100644 index 000000000000..a8f17a3dbafe --- /dev/null +++ b/swaggerci/azure-kusto/exports/New-AzKustoScript.ps1 @@ -0,0 +1,199 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Creates a Kusto database script. +.Description +Creates a Kusto database script. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustoscript +#> +function New-AzKustoScript { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(Mandatory)] + [Alias('ScriptName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto database script. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Flag that indicates whether to continue if one of the command fails. + ${ContinueOnError}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # A unique string. + # If changed the script will be applied again. + ${ForceUpdateTag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The script content. + # This property should be used when the script is provide inline and not through file in a SA. + # Must not be used together with scriptUrl and scriptUrlSasToken properties. + ${ScriptContent}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The url to the KQL script blob file. + # Must not be used together with scriptContent property + ${ScriptUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The SaS token that provide read access to the file which contain the script. + # Must be provided when using scriptUrl property. + ${ScriptUrlSasToken}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoScript_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/ProxyCmdletDefinitions.ps1 b/swaggerci/azure-kusto/exports/ProxyCmdletDefinitions.ps1 new file mode 100644 index 000000000000..1137b3e26c83 --- /dev/null +++ b/swaggerci/azure-kusto/exports/ProxyCmdletDefinitions.ps1 @@ -0,0 +1,10844 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Add a list of language extensions that can run within KQL queries. +.Description +Add a list of language extensions that can run within KQL queries. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +LANGUAGEEXTENSIONSTOADD : The list of language extension objects. + [Value ]: The list of language extensions. + [Name ]: The language extension name. + +VALUE : The list of language extensions. + [Name ]: The language extension name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/add-azkustoclusterlanguageextension +#> +function Add-AzKustoClusterLanguageExtension { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='AddExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Add', Mandatory)] + [Parameter(ParameterSetName='AddExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Add', Mandatory)] + [Parameter(ParameterSetName='AddExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Add')] + [Parameter(ParameterSetName='AddExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='AddViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='AddViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Add', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='AddViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList] + # The list of language extension objects. + # To construct, see NOTES section for LANGUAGEEXTENSIONSTOADD properties and create a hash table. + ${LanguageExtensionsToAdd}, + + [Parameter(ParameterSetName='AddExpanded')] + [Parameter(ParameterSetName='AddViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[]] + # The list of language extensions. + # To construct, see NOTES section for VALUE properties and create a hash table. + ${Value}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Add = 'Az.Kusto.private\Add-AzKustoClusterLanguageExtension_Add'; + AddExpanded = 'Az.Kusto.private\Add-AzKustoClusterLanguageExtension_AddExpanded'; + AddViaIdentity = 'Az.Kusto.private\Add-AzKustoClusterLanguageExtension_AddViaIdentity'; + AddViaIdentityExpanded = 'Az.Kusto.private\Add-AzKustoClusterLanguageExtension_AddViaIdentityExpanded'; + } + if (('Add', 'AddExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Add Database principals permissions. +.Description +Add Database principals permissions. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +DATABASEPRINCIPALSTOADD : The list Kusto database principals operation request. + [Value ]: The list of Kusto database principals. + Name : Database principal name. + Role : Database principal role. + Type : Database principal type. + [AppId ]: Application id - relevant only for application principal type. + [Email ]: Database principal email if exists. + [Fqn ]: Database principal fully qualified name. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +VALUE : The list of Kusto database principals. + Name : Database principal name. + Role : Database principal role. + Type : Database principal type. + [AppId ]: Application id - relevant only for application principal type. + [Email ]: Database principal email if exists. + [Fqn ]: Database principal fully qualified name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/add-azkustodatabaseprincipal +#> +function Add-AzKustoDatabasePrincipal { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal])] +[CmdletBinding(DefaultParameterSetName='AddExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Add', Mandatory)] + [Parameter(ParameterSetName='AddExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Add', Mandatory)] + [Parameter(ParameterSetName='AddExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Add', Mandatory)] + [Parameter(ParameterSetName='AddExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Add')] + [Parameter(ParameterSetName='AddExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='AddViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='AddViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Add', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='AddViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest] + # The list Kusto database principals operation request. + # To construct, see NOTES section for DATABASEPRINCIPALSTOADD properties and create a hash table. + ${DatabasePrincipalsToAdd}, + + [Parameter(ParameterSetName='AddExpanded')] + [Parameter(ParameterSetName='AddViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[]] + # The list of Kusto database principals. + # To construct, see NOTES section for VALUE properties and create a hash table. + ${Value}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Add = 'Az.Kusto.private\Add-AzKustoDatabasePrincipal_Add'; + AddExpanded = 'Az.Kusto.private\Add-AzKustoDatabasePrincipal_AddExpanded'; + AddViaIdentity = 'Az.Kusto.private\Add-AzKustoDatabasePrincipal_AddViaIdentity'; + AddViaIdentityExpanded = 'Az.Kusto.private\Add-AzKustoDatabasePrincipal_AddViaIdentityExpanded'; + } + if (('Add', 'AddExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Returns an attached database configuration. +.Description +Returns an attached database configuration. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoattacheddatabaseconfiguration +#> +function Get-AzKustoAttachedDatabaseConfiguration { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('AttachedDatabaseConfigurationName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the attached database configuration. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoAttachedDatabaseConfiguration_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoAttachedDatabaseConfiguration_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoAttachedDatabaseConfiguration_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Returns a list of databases that are owned by this cluster and were followed by another cluster. +.Description +Returns a list of databases that are owned by this cluster and were followed by another cluster. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoclusterfollowerdatabase +#> +function Get-AzKustoClusterFollowerDatabase { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + List = 'Az.Kusto.private\Get-AzKustoClusterFollowerDatabase_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Returns a list of language extensions that can run within KQL queries. +.Description +Returns a list of language extensions that can run within KQL queries. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoclusterlanguageextension +#> +function Get-AzKustoClusterLanguageExtension { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + List = 'Az.Kusto.private\Get-AzKustoClusterLanguageExtension_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Gets the network endpoints of all outbound dependencies of a Kusto cluster +.Description +Gets the network endpoints of all outbound dependencies of a Kusto cluster +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoclusteroutboundnetworkdependencyendpoint +#> +function Get-AzKustoClusterOutboundNetworkDependencyEndpoint { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + List = 'Az.Kusto.private\Get-AzKustoClusterOutboundNetworkDependencyEndpoint_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Gets a Kusto cluster principalAssignment. +.Description +Gets a Kusto cluster principalAssignment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoclusterprincipalassignment +#> +function Get-AzKustoClusterPrincipalAssignment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto principalAssignment. + ${PrincipalAssignmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoClusterPrincipalAssignment_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoClusterPrincipalAssignment_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoClusterPrincipalAssignment_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Lists eligible SKUs for Kusto resource provider. +.Description +Lists eligible SKUs for Kusto resource provider. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoclustersku +#> +function Get-AzKustoClusterSku { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription], [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + List = 'Az.Kusto.private\Get-AzKustoClusterSku_List'; + List1 = 'Az.Kusto.private\Get-AzKustoClusterSku_List1'; + } + if (('List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Gets a Kusto cluster. +.Description +Gets a Kusto cluster. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustocluster +#> +function Get-AzKustoCluster { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster])] +[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ClusterName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoCluster_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoCluster_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoCluster_List'; + List1 = 'Az.Kusto.private\Get-AzKustoCluster_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Gets a Kusto cluster database principalAssignment. +.Description +Gets a Kusto cluster database principalAssignment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustodatabaseprincipalassignment +#> +function Get-AzKustoDatabasePrincipalAssignment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto principalAssignment. + ${PrincipalAssignmentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoDatabasePrincipalAssignment_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoDatabasePrincipalAssignment_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoDatabasePrincipalAssignment_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Returns a list of database principals of the given Kusto cluster and database. +.Description +Returns a list of database principals of the given Kusto cluster and database. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustodatabaseprincipal +#> +function Get-AzKustoDatabasePrincipal { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + List = 'Az.Kusto.private\Get-AzKustoDatabasePrincipal_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Returns a database. +.Description +Returns a database. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustodatabase +#> +function Get-AzKustoDatabase { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('DatabaseName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoDatabase_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoDatabase_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoDatabase_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Returns a data connection. +.Description +Returns a data connection. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustodataconnection +#> +function Get-AzKustoDataConnection { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('DataConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the data connection. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoDataConnection_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoDataConnection_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoDataConnection_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Gets a managed private endpoint. +.Description +Gets a managed private endpoint. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustomanagedprivateendpoint +#> +function Get-AzKustoManagedPrivateEndpoint { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ManagedPrivateEndpointName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the managed private endpoint. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoManagedPrivateEndpoint_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoManagedPrivateEndpoint_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoManagedPrivateEndpoint_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Returns operation results. +.Description +Returns operation results. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustooperationsresultslocation +#> +function Get-AzKustoOperationsResultsLocation { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # Azure location (region) name. + ${Location}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The Guid of the operation ID + ${OperationId}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoOperationsResultsLocation_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoOperationsResultsLocation_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Returns operation results. +.Description +Returns operation results. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustooperationsresult +#> +function Get-AzKustoOperationsResult { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # Azure location (region) name. + ${Location}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The Guid of the operation ID + ${OperationId}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoOperationsResult_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoOperationsResult_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Gets a private endpoint connection. +.Description +Gets a private endpoint connection. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoprivateendpointconnection +#> +function Get-AzKustoPrivateEndpointConnection { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PrivateEndpointConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the private endpoint connection. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoPrivateEndpointConnection_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoPrivateEndpointConnection_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoPrivateEndpointConnection_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Gets a private link resource. +.Description +Gets a private link resource. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoprivatelinkresource +#> +function Get-AzKustoPrivateLinkResource { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PrivateLinkResourceName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the private link resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoPrivateLinkResource_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoPrivateLinkResource_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoPrivateLinkResource_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Gets a Kusto cluster database script. +.Description +Gets a Kusto cluster database script. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/get-azkustoscript +#> +function Get-AzKustoScript { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ScriptName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto database script. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Get = 'Az.Kusto.private\Get-AzKustoScript_Get'; + GetViaIdentity = 'Az.Kusto.private\Get-AzKustoScript_GetViaIdentity'; + List = 'Az.Kusto.private\Get-AzKustoScript_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Checks that the data connection parameters are valid. +.Description +Checks that the data connection parameters are valid. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +PARAMETER : Class representing an data connection validation. + [AzureAsyncOperation ]: + [DataConnectionName ]: The name of the data connection. + [Kind ]: Kind of the endpoint for the data connection + [Location ]: Resource location. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/invoke-azkustodataconnectionvalidation +#> +function Invoke-AzKustoDataConnectionValidation { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult])] +[CmdletBinding(DefaultParameterSetName='DataExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Data', Mandatory)] + [Parameter(ParameterSetName='DataExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Data', Mandatory)] + [Parameter(ParameterSetName='DataExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Data', Mandatory)] + [Parameter(ParameterSetName='DataExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Data')] + [Parameter(ParameterSetName='DataExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DataViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='DataViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Data', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='DataViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation] + # Class representing an data connection validation. + # To construct, see NOTES section for PARAMETER properties and create a hash table. + ${Parameter}, + + [Parameter(ParameterSetName='DataExpanded')] + [Parameter(ParameterSetName='DataViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The name of the data connection. + ${DataConnectionName}, + + [Parameter(ParameterSetName='DataExpanded')] + [Parameter(ParameterSetName='DataViaIdentityExpanded')] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind] + # Kind of the endpoint for the data connection + ${Kind}, + + [Parameter(ParameterSetName='DataExpanded')] + [Parameter(ParameterSetName='DataViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource location. + ${Location}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Data = 'Az.Kusto.private\Invoke-AzKustoDataConnectionValidation_Data'; + DataExpanded = 'Az.Kusto.private\Invoke-AzKustoDataConnectionValidation_DataExpanded'; + DataViaIdentity = 'Az.Kusto.private\Invoke-AzKustoDataConnectionValidation_DataViaIdentity'; + DataViaIdentityExpanded = 'Az.Kusto.private\Invoke-AzKustoDataConnectionValidation_DataViaIdentityExpanded'; + } + if (('Data', 'DataExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Detaches all followers of a database owned by this cluster. +.Description +Detaches all followers of a database owned by this cluster. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +FOLLOWERDATABASETOREMOVE : A class representing follower database request. + AttachedDatabaseConfigurationName : Resource name of the attached database configuration in the follower cluster. + ClusterResourceId : Resource id of the cluster that follows a database owned by this cluster. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/invoke-azkustodetachclusterfollowerdatabase +#> +function Invoke-AzKustoDetachClusterFollowerDatabase { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='DetachExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Detach', Mandatory)] + [Parameter(ParameterSetName='DetachExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Detach', Mandatory)] + [Parameter(ParameterSetName='DetachExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Detach')] + [Parameter(ParameterSetName='DetachExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DetachViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='DetachViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Detach', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='DetachViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition] + # A class representing follower database request. + # To construct, see NOTES section for FOLLOWERDATABASETOREMOVE properties and create a hash table. + ${FollowerDatabaseToRemove}, + + [Parameter(ParameterSetName='DetachExpanded', Mandatory)] + [Parameter(ParameterSetName='DetachViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource name of the attached database configuration in the follower cluster. + ${AttachedDatabaseConfigurationName}, + + [Parameter(ParameterSetName='DetachExpanded', Mandatory)] + [Parameter(ParameterSetName='DetachViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource id of the cluster that follows a database owned by this cluster. + ${ClusterResourceId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Detach = 'Az.Kusto.private\Invoke-AzKustoDetachClusterFollowerDatabase_Detach'; + DetachExpanded = 'Az.Kusto.private\Invoke-AzKustoDetachClusterFollowerDatabase_DetachExpanded'; + DetachViaIdentity = 'Az.Kusto.private\Invoke-AzKustoDetachClusterFollowerDatabase_DetachViaIdentity'; + DetachViaIdentityExpanded = 'Az.Kusto.private\Invoke-AzKustoDetachClusterFollowerDatabase_DetachViaIdentityExpanded'; + } + if (('Detach', 'DetachExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Diagnoses network connectivity status for external resources on which the service is dependent on. +.Description +Diagnoses network connectivity status for external resources on which the service is dependent on. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/invoke-azkustodiagnoseclustervirtualnetwork +#> +function Invoke-AzKustoDiagnoseClusterVirtualNetwork { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Diagnose', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Diagnose', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Diagnose', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Diagnose')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DiagnoseViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Diagnose = 'Az.Kusto.private\Invoke-AzKustoDiagnoseClusterVirtualNetwork_Diagnose'; + DiagnoseViaIdentity = 'Az.Kusto.private\Invoke-AzKustoDiagnoseClusterVirtualNetwork_DiagnoseViaIdentity'; + } + if (('Diagnose') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Creates or updates an attached database configuration. +.Description +Creates or updates an attached database configuration. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustoattacheddatabaseconfiguration +#> +function New-AzKustoAttachedDatabaseConfiguration { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Alias('AttachedDatabaseConfigurationName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the attached database configuration. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The resource id of the cluster where the databases you would like to attach reside. + ${ClusterResourceId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The name of the database which you would like to attach, use * if you want to follow all current and future databases. + ${DatabaseName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind] + # The default principals modification kind + ${DefaultPrincipalsModificationKind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource location. + ${Location}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # List of external tables exclude from the follower database + ${TableLevelSharingPropertyExternalTablesToExclude}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # List of external tables to include in the follower database + ${TableLevelSharingPropertyExternalTablesToInclude}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # List of materialized views exclude from the follower database + ${TableLevelSharingPropertyMaterializedViewsToExclude}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # List of materialized views to include in the follower database + ${TableLevelSharingPropertyMaterializedViewsToInclude}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # List of tables to exclude from the follower database + ${TableLevelSharingPropertyTablesToExclude}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # List of tables to include in the follower database + ${TableLevelSharingPropertyTablesToInclude}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoAttachedDatabaseConfiguration_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Create a Kusto cluster principalAssignment. +.Description +Create a Kusto cluster principalAssignment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustoclusterprincipalassignment +#> +function New-AzKustoClusterPrincipalAssignment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto principalAssignment. + ${PrincipalAssignmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The principal ID assigned to the cluster principal. + # It can be a user email, application ID, or security group name. + ${PrincipalId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType] + # Principal type. + ${PrincipalType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole] + # Cluster principal role. + ${Role}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The tenant id of the principal + ${TenantId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoClusterPrincipalAssignment_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Create or update a Kusto cluster. +.Description +Create or update a Kusto cluster. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +ACCEPTEDAUDIENCE : The cluster's accepted audiences. + [Value ]: GUID or valid URL representing an accepted audience. + +TRUSTEDEXTERNALTENANT : The cluster's external tenants. + [Value ]: GUID representing an external tenant. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustocluster +#> +function New-AzKustoCluster { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ClusterName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Header')] + [System.String] + # The ETag of the cluster. + # Omit this value to always overwrite the current cluster. + # Specify the last-seen ETag value to prevent accidentally overwriting concurrent changes. + ${IfMatch}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Header')] + [System.String] + # Set to '*' to allow a new cluster to be created, but to prevent updating an existing cluster. + # Other values will result in a 412 Pre-condition Failed response. + ${IfNoneMatch}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The geo-location where the resource lives + ${Location}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName] + # SKU name. + ${SkuName}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier] + # SKU tier. + ${SkuTier}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[]] + # The cluster's accepted audiences. + # To construct, see NOTES section for ACCEPTEDAUDIENCE properties and create a hash table. + ${AcceptedAudience}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + ${AllowedFqdnList}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # The list of ips in the format of CIDR allowed to connect to the cluster. + ${AllowedIPRangeList}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days). + ${EnableAutoStop}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if the cluster's disks are encrypted. + ${EnableDiskEncryption}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if double encryption is enabled. + ${EnableDoubleEncryption}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if the purge operations are enabled. + ${EnablePurge}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if the streaming ingest is enabled. + ${EnableStreamingIngest}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType] + # The engine type + ${EngineType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType] + # 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 all identities. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the Kusto cluster. + # The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The name of the key vault key. + ${KeyVaultPropertyKeyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The Uri of the key vault. + ${KeyVaultPropertyKeyVaultUri}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The version of the key vault key. + ${KeyVaultPropertyKeyVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The user assigned identity (ARM resource id) that has access to the key. + ${KeyVaultPropertyUserIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicate if the optimized autoscale feature is enabled or not. + ${OptimizedAutoscaleIsEnabled}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Int32] + # Maximum allowed instances count. + ${OptimizedAutoscaleMaximum}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Int32] + # Minimum allowed instances count. + ${OptimizedAutoscaleMinimum}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Int32] + # The version of the template defined, for instance 1. + ${OptimizedAutoscaleVersion}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType] + # Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + ${PublicIPType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess] + # Public network access to the cluster is enabled by default. + # When disabled, only private endpoint connection to the cluster is allowed + ${PublicNetworkAccess}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag] + # Whether or not to restrict outbound network access. + # Value is optional but if passed in, must be 'Enabled' or 'Disabled' + ${RestrictOutboundNetworkAccess}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Int32] + # The number of instances of the cluster. + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[]] + # The cluster's external tenants. + # To construct, see NOTES section for TRUSTEDEXTERNALTENANT properties and create a hash table. + ${TrustedExternalTenant}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Virtual Cluster graduation properties + ${VirtualClusterGraduationProperty}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Data management's service public IP address resource id. + ${VirtualNetworkConfigurationDataManagementPublicIPId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Engine service's public IP address resource id. + ${VirtualNetworkConfigurationEnginePublicIPId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The subnet resource id. + ${VirtualNetworkConfigurationSubnetId}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # The availability zones of the cluster. + ${Zone}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoCluster_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Creates a Kusto cluster database principalAssignment. +.Description +Creates a Kusto cluster database principalAssignment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustodatabaseprincipalassignment +#> +function New-AzKustoDatabasePrincipalAssignment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto principalAssignment. + ${PrincipalAssignmentName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The principal ID assigned to the database principal. + # It can be a user email, application ID, or security group name. + ${PrincipalId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType] + # Principal type. + ${PrincipalType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole] + # Database principal role. + ${Role}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The tenant id of the principal + ${TenantId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoDatabasePrincipalAssignment_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Creates or updates a database. +.Description +Creates or updates a database. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustodatabase +#> +function New-AzKustoDatabase { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Alias('DatabaseName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind] + # Kind of the database + ${Kind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource location. + ${Location}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoDatabase_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Creates or updates a data connection. +.Description +Creates or updates a data connection. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustodataconnection +#> +function New-AzKustoDataConnection { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(Mandatory)] + [Alias('DataConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the data connection. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind] + # Kind of the endpoint for the data connection + ${Kind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource location. + ${Location}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoDataConnection_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Creates a managed private endpoint. +.Description +Creates a managed private endpoint. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustomanagedprivateendpoint +#> +function New-AzKustoManagedPrivateEndpoint { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Alias('ManagedPrivateEndpointName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the managed private endpoint. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The groupId in which the managed private endpoint is created. + ${GroupId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The ARM resource ID of the resource for which the managed private endpoint is created. + ${PrivateLinkResourceId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The region of the resource to which the managed private endpoint is created. + ${PrivateLinkResourceRegion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The user request message. + ${RequestMessage}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoManagedPrivateEndpoint_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Approve or reject a private endpoint connection with a given name. +.Description +Approve or reject a private endpoint connection with a given name. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustoprivateendpointconnection +#> +function New-AzKustoPrivateEndpointConnection { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Alias('PrivateEndpointConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the private endpoint connection. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The private link service connection description. + ${PrivateLinkServiceConnectionStateDescription}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The private link service connection status. + ${PrivateLinkServiceConnectionStateStatus}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoPrivateEndpointConnection_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Creates a Kusto database script. +.Description +Creates a Kusto database script. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/new-azkustoscript +#> +function New-AzKustoScript { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(Mandatory)] + [Alias('ScriptName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto database script. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Flag that indicates whether to continue if one of the command fails. + ${ContinueOnError}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # A unique string. + # If changed the script will be applied again. + ${ForceUpdateTag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The script content. + # This property should be used when the script is provide inline and not through file in a SA. + # Must not be used together with scriptUrl and scriptUrlSasToken properties. + ${ScriptContent}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The url to the KQL script blob file. + # Must not be used together with scriptContent property + ${ScriptUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The SaS token that provide read access to the file which contain the script. + # Must be provided when using scriptUrl property. + ${ScriptUrlSasToken}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + CreateExpanded = 'Az.Kusto.private\New-AzKustoScript_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Deletes the attached database configuration with the given name. +.Description +Deletes the attached database configuration with the given name. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustoattacheddatabaseconfiguration +#> +function Remove-AzKustoAttachedDatabaseConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('AttachedDatabaseConfigurationName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the attached database configuration. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoAttachedDatabaseConfiguration_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoAttachedDatabaseConfiguration_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Remove a list of language extensions that can run within KQL queries. +.Description +Remove a list of language extensions that can run within KQL queries. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +LANGUAGEEXTENSIONSTOREMOVE : The list of language extension objects. + [Value ]: The list of language extensions. + [Name ]: The language extension name. + +VALUE : The list of language extensions. + [Name ]: The language extension name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustoclusterlanguageextension +#> +function Remove-AzKustoClusterLanguageExtension { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='RemoveExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Remove')] + [Parameter(ParameterSetName='RemoveExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Remove', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList] + # The list of language extension objects. + # To construct, see NOTES section for LANGUAGEEXTENSIONSTOREMOVE properties and create a hash table. + ${LanguageExtensionsToRemove}, + + [Parameter(ParameterSetName='RemoveExpanded')] + [Parameter(ParameterSetName='RemoveViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[]] + # The list of language extensions. + # To construct, see NOTES section for VALUE properties and create a hash table. + ${Value}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Remove = 'Az.Kusto.private\Remove-AzKustoClusterLanguageExtension_Remove'; + RemoveExpanded = 'Az.Kusto.private\Remove-AzKustoClusterLanguageExtension_RemoveExpanded'; + RemoveViaIdentity = 'Az.Kusto.private\Remove-AzKustoClusterLanguageExtension_RemoveViaIdentity'; + RemoveViaIdentityExpanded = 'Az.Kusto.private\Remove-AzKustoClusterLanguageExtension_RemoveViaIdentityExpanded'; + } + if (('Remove', 'RemoveExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Deletes a Kusto cluster principalAssignment. +.Description +Deletes a Kusto cluster principalAssignment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustoclusterprincipalassignment +#> +function Remove-AzKustoClusterPrincipalAssignment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto principalAssignment. + ${PrincipalAssignmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoClusterPrincipalAssignment_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoClusterPrincipalAssignment_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Deletes a Kusto cluster. +.Description +Deletes a Kusto cluster. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustocluster +#> +function Remove-AzKustoCluster { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ClusterName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoCluster_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoCluster_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Deletes a Kusto principalAssignment. +.Description +Deletes a Kusto principalAssignment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustodatabaseprincipalassignment +#> +function Remove-AzKustoDatabasePrincipalAssignment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto principalAssignment. + ${PrincipalAssignmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoDatabasePrincipalAssignment_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoDatabasePrincipalAssignment_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Remove Database principals permissions. +.Description +Remove Database principals permissions. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +DATABASEPRINCIPALSTOREMOVE : The list Kusto database principals operation request. + [Value ]: The list of Kusto database principals. + Name : Database principal name. + Role : Database principal role. + Type : Database principal type. + [AppId ]: Application id - relevant only for application principal type. + [Email ]: Database principal email if exists. + [Fqn ]: Database principal fully qualified name. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +VALUE : The list of Kusto database principals. + Name : Database principal name. + Role : Database principal role. + Type : Database principal type. + [AppId ]: Application id - relevant only for application principal type. + [Email ]: Database principal email if exists. + [Fqn ]: Database principal fully qualified name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustodatabaseprincipal +#> +function Remove-AzKustoDatabasePrincipal { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal])] +[CmdletBinding(DefaultParameterSetName='RemoveExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Remove')] + [Parameter(ParameterSetName='RemoveExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Remove', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest] + # The list Kusto database principals operation request. + # To construct, see NOTES section for DATABASEPRINCIPALSTOREMOVE properties and create a hash table. + ${DatabasePrincipalsToRemove}, + + [Parameter(ParameterSetName='RemoveExpanded')] + [Parameter(ParameterSetName='RemoveViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[]] + # The list of Kusto database principals. + # To construct, see NOTES section for VALUE properties and create a hash table. + ${Value}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Remove = 'Az.Kusto.private\Remove-AzKustoDatabasePrincipal_Remove'; + RemoveExpanded = 'Az.Kusto.private\Remove-AzKustoDatabasePrincipal_RemoveExpanded'; + RemoveViaIdentity = 'Az.Kusto.private\Remove-AzKustoDatabasePrincipal_RemoveViaIdentity'; + RemoveViaIdentityExpanded = 'Az.Kusto.private\Remove-AzKustoDatabasePrincipal_RemoveViaIdentityExpanded'; + } + if (('Remove', 'RemoveExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Deletes the database with the given name. +.Description +Deletes the database with the given name. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustodatabase +#> +function Remove-AzKustoDatabase { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('DatabaseName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoDatabase_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoDatabase_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Deletes the data connection with the given name. +.Description +Deletes the data connection with the given name. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustodataconnection +#> +function Remove-AzKustoDataConnection { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('DataConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the data connection. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoDataConnection_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoDataConnection_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Deletes a managed private endpoint. +.Description +Deletes a managed private endpoint. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustomanagedprivateendpoint +#> +function Remove-AzKustoManagedPrivateEndpoint { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ManagedPrivateEndpointName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the managed private endpoint. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoManagedPrivateEndpoint_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoManagedPrivateEndpoint_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Deletes a private endpoint connection with a given name. +.Description +Deletes a private endpoint connection with a given name. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustoprivateendpointconnection +#> +function Remove-AzKustoPrivateEndpointConnection { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('PrivateEndpointConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the private endpoint connection. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoPrivateEndpointConnection_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoPrivateEndpointConnection_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Deletes a Kusto principalAssignment. +.Description +Deletes a Kusto principalAssignment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustoscript +#> +function Remove-AzKustoScript { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ScriptName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto database script. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoScript_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoScript_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Starts a Kusto cluster. +.Description +Starts a Kusto cluster. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/start-azkustocluster +#> +function Start-AzKustoCluster { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Start', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Start', Mandatory)] + [Alias('ClusterName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${Name}, + + [Parameter(ParameterSetName='Start', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Start')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='StartViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Start = 'Az.Kusto.private\Start-AzKustoCluster_Start'; + StartViaIdentity = 'Az.Kusto.private\Start-AzKustoCluster_StartViaIdentity'; + } + if (('Start') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Stops a Kusto cluster. +.Description +Stops a Kusto cluster. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/stop-azkustocluster +#> +function Stop-AzKustoCluster { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Stop', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Stop', Mandatory)] + [Alias('ClusterName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${Name}, + + [Parameter(ParameterSetName='Stop', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Stop')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='StopViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Stop = 'Az.Kusto.private\Stop-AzKustoCluster_Stop'; + StopViaIdentity = 'Az.Kusto.private\Stop-AzKustoCluster_StopViaIdentity'; + } + if (('Stop') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Checks that the attached database configuration resource name is valid and is not already in use. +.Description +Checks that the attached database configuration resource name is valid and is not already in use. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +RESOURCENAME : The result returned from a AttachedDatabaseConfigurations check name availability request. + Name : Attached database resource name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustoattacheddatabaseconfigurationnameavailability +#> +function Test-AzKustoAttachedDatabaseConfigurationNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest] + # The result returned from a AttachedDatabaseConfigurations check name availability request. + # To construct, see NOTES section for RESOURCENAME properties and create a hash table. + ${ResourceName}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Attached database resource name. + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Check = 'Az.Kusto.private\Test-AzKustoAttachedDatabaseConfigurationNameAvailability_Check'; + CheckExpanded = 'Az.Kusto.private\Test-AzKustoAttachedDatabaseConfigurationNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.Kusto.private\Test-AzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.Kusto.private\Test-AzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Checks that the cluster name is valid and is not already in use. +.Description +Checks that the cluster name is valid and is not already in use. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +CLUSTERNAME : The result returned from a cluster check name availability request. + Name : Cluster name. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustoclusternameavailability +#> +function Test-AzKustoClusterNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # Azure location (region) name. + ${Location}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest] + # The result returned from a cluster check name availability request. + # To construct, see NOTES section for CLUSTERNAME properties and create a hash table. + ${ClusterName}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Cluster name. + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Check = 'Az.Kusto.private\Test-AzKustoClusterNameAvailability_Check'; + CheckExpanded = 'Az.Kusto.private\Test-AzKustoClusterNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.Kusto.private\Test-AzKustoClusterNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.Kusto.private\Test-AzKustoClusterNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Checks that the principal assignment name is valid and is not already in use. +.Description +Checks that the principal assignment name is valid and is not already in use. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +PRINCIPALASSIGNMENTNAME : A principal assignment check name availability request. + Name : Principal Assignment resource name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustoclusterprincipalassignmentnameavailability +#> +function Test-AzKustoClusterPrincipalAssignmentNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest] + # A principal assignment check name availability request. + # To construct, see NOTES section for PRINCIPALASSIGNMENTNAME properties and create a hash table. + ${PrincipalAssignmentName}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Principal Assignment resource name. + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Check = 'Az.Kusto.private\Test-AzKustoClusterPrincipalAssignmentNameAvailability_Check'; + CheckExpanded = 'Az.Kusto.private\Test-AzKustoClusterPrincipalAssignmentNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.Kusto.private\Test-AzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.Kusto.private\Test-AzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Checks that the databases resource name is valid and is not already in use. +.Description +Checks that the databases resource name is valid and is not already in use. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +RESOURCENAME : The result returned from a database check name availability request. + Name : Resource name. + Type : The type of resource, for instance Microsoft.Kusto/clusters/databases. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustodatabasenameavailability +#> +function Test-AzKustoDatabaseNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest] + # The result returned from a database check name availability request. + # To construct, see NOTES section for RESOURCENAME properties and create a hash table. + ${ResourceName}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource name. + ${Name}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type] + # The type of resource, for instance Microsoft.Kusto/clusters/databases. + ${Type}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Check = 'Az.Kusto.private\Test-AzKustoDatabaseNameAvailability_Check'; + CheckExpanded = 'Az.Kusto.private\Test-AzKustoDatabaseNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.Kusto.private\Test-AzKustoDatabaseNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.Kusto.private\Test-AzKustoDatabaseNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Checks that the database principal assignment is valid and is not already in use. +.Description +Checks that the database principal assignment is valid and is not already in use. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +PRINCIPALASSIGNMENTNAME : A principal assignment check name availability request. + Name : Principal Assignment resource name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustodatabaseprincipalassignmentnameavailability +#> +function Test-AzKustoDatabasePrincipalAssignmentNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest] + # A principal assignment check name availability request. + # To construct, see NOTES section for PRINCIPALASSIGNMENTNAME properties and create a hash table. + ${PrincipalAssignmentName}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Principal Assignment resource name. + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Check = 'Az.Kusto.private\Test-AzKustoDatabasePrincipalAssignmentNameAvailability_Check'; + CheckExpanded = 'Az.Kusto.private\Test-AzKustoDatabasePrincipalAssignmentNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.Kusto.private\Test-AzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.Kusto.private\Test-AzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Checks that the data connection name is valid and is not already in use. +.Description +Checks that the data connection name is valid and is not already in use. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +DATACONNECTIONNAME : A data connection check name availability request. + Name : Data Connection name. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustodataconnectionnameavailability +#> +function Test-AzKustoDataConnectionNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest] + # A data connection check name availability request. + # To construct, see NOTES section for DATACONNECTIONNAME properties and create a hash table. + ${DataConnectionName}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Data Connection name. + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Check = 'Az.Kusto.private\Test-AzKustoDataConnectionNameAvailability_Check'; + CheckExpanded = 'Az.Kusto.private\Test-AzKustoDataConnectionNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.Kusto.private\Test-AzKustoDataConnectionNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.Kusto.private\Test-AzKustoDataConnectionNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Checks that the managed private endpoints resource name is valid and is not already in use. +.Description +Checks that the managed private endpoints resource name is valid and is not already in use. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +RESOURCENAME : The result returned from a managedPrivateEndpoints check name availability request. + Name : Managed private endpoint resource name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustomanagedprivateendpointnameavailability +#> +function Test-AzKustoManagedPrivateEndpointNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest] + # The result returned from a managedPrivateEndpoints check name availability request. + # To construct, see NOTES section for RESOURCENAME properties and create a hash table. + ${ResourceName}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Managed private endpoint resource name. + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Check = 'Az.Kusto.private\Test-AzKustoManagedPrivateEndpointNameAvailability_Check'; + CheckExpanded = 'Az.Kusto.private\Test-AzKustoManagedPrivateEndpointNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.Kusto.private\Test-AzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.Kusto.private\Test-AzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Checks that the script name is valid and is not already in use. +.Description +Checks that the script name is valid and is not already in use. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +SCRIPTNAME : A script name availability request. + Name : Script name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustoscriptnameavailability +#> +function Test-AzKustoScriptNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest] + # A script name availability request. + # To construct, see NOTES section for SCRIPTNAME properties and create a hash table. + ${ScriptName}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Script name. + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Check = 'Az.Kusto.private\Test-AzKustoScriptNameAvailability_Check'; + CheckExpanded = 'Az.Kusto.private\Test-AzKustoScriptNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.Kusto.private\Test-AzKustoScriptNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.Kusto.private\Test-AzKustoScriptNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Update a Kusto cluster. +.Description +Update a Kusto cluster. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +ACCEPTEDAUDIENCE : The cluster's accepted audiences. + [Value ]: GUID or valid URL representing an accepted audience. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +TRUSTEDEXTERNALTENANT : The cluster's external tenants. + [Value ]: GUID representing an external tenant. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/update-azkustocluster +#> +function Update-AzKustoCluster { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ClusterName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Header')] + [System.String] + # The ETag of the cluster. + # Omit this value to always overwrite the current cluster. + # Specify the last-seen ETag value to prevent accidentally overwriting concurrent changes. + ${IfMatch}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[]] + # The cluster's accepted audiences. + # To construct, see NOTES section for ACCEPTEDAUDIENCE properties and create a hash table. + ${AcceptedAudience}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + ${AllowedFqdnList}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # The list of ips in the format of CIDR allowed to connect to the cluster. + ${AllowedIPRangeList}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days). + ${EnableAutoStop}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if the cluster's disks are encrypted. + ${EnableDiskEncryption}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if double encryption is enabled. + ${EnableDoubleEncryption}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if the purge operations are enabled. + ${EnablePurge}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if the streaming ingest is enabled. + ${EnableStreamingIngest}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType] + # The engine type + ${EngineType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType] + # 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 all identities. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the Kusto cluster. + # The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The name of the key vault key. + ${KeyVaultPropertyKeyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The Uri of the key vault. + ${KeyVaultPropertyKeyVaultUri}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The version of the key vault key. + ${KeyVaultPropertyKeyVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The user assigned identity (ARM resource id) that has access to the key. + ${KeyVaultPropertyUserIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource location. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicate if the optimized autoscale feature is enabled or not. + ${OptimizedAutoscaleIsEnabled}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Int32] + # Maximum allowed instances count. + ${OptimizedAutoscaleMaximum}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Int32] + # Minimum allowed instances count. + ${OptimizedAutoscaleMinimum}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Int32] + # The version of the template defined, for instance 1. + ${OptimizedAutoscaleVersion}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType] + # Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + ${PublicIPType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess] + # Public network access to the cluster is enabled by default. + # When disabled, only private endpoint connection to the cluster is allowed + ${PublicNetworkAccess}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag] + # Whether or not to restrict outbound network access. + # Value is optional but if passed in, must be 'Enabled' or 'Disabled' + ${RestrictOutboundNetworkAccess}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Int32] + # The number of instances of the cluster. + ${SkuCapacity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName] + # SKU name. + ${SkuName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier] + # SKU tier. + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[]] + # The cluster's external tenants. + # To construct, see NOTES section for TRUSTEDEXTERNALTENANT properties and create a hash table. + ${TrustedExternalTenant}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Virtual Cluster graduation properties + ${VirtualClusterGraduationProperty}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Data management's service public IP address resource id. + ${VirtualNetworkConfigurationDataManagementPublicIPId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Engine service's public IP address resource id. + ${VirtualNetworkConfigurationEnginePublicIPId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The subnet resource id. + ${VirtualNetworkConfigurationSubnetId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.Kusto.private\Update-AzKustoCluster_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.Kusto.private\Update-AzKustoCluster_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Updates a database. +.Description +Updates a database. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/update-azkustodatabase +#> +function Update-AzKustoDatabase { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('DatabaseName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind] + # Kind of the database + ${Kind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource location. + ${Location}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.Kusto.private\Update-AzKustoDatabase_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.Kusto.private\Update-AzKustoDatabase_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Updates a data connection. +.Description +Updates a data connection. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/update-azkustodataconnection +#> +function Update-AzKustoDataConnection { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('DataConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the data connection. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind] + # Kind of the endpoint for the data connection + ${Kind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource location. + ${Location}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.Kusto.private\Update-AzKustoDataConnection_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.Kusto.private\Update-AzKustoDataConnection_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Updates a managed private endpoint. +.Description +Updates a managed private endpoint. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/update-azkustomanagedprivateendpoint +#> +function Update-AzKustoManagedPrivateEndpoint { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ManagedPrivateEndpointName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the managed private endpoint. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The groupId in which the managed private endpoint is created. + ${GroupId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The ARM resource ID of the resource for which the managed private endpoint is created. + ${PrivateLinkResourceId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The region of the resource to which the managed private endpoint is created. + ${PrivateLinkResourceRegion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The user request message. + ${RequestMessage}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.Kusto.private\Update-AzKustoManagedPrivateEndpoint_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.Kusto.private\Update-AzKustoManagedPrivateEndpoint_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} + +<# +.Synopsis +Updates a database script. +.Description +Updates a database script. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/update-azkustoscript +#> +function Update-AzKustoScript { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ScriptName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto database script. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Flag that indicates whether to continue if one of the command fails. + ${ContinueOnError}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # A unique string. + # If changed the script will be applied again. + ${ForceUpdateTag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The script content. + # This property should be used when the script is provide inline and not through file in a SA. + # Must not be used together with scriptUrl and scriptUrlSasToken properties. + ${ScriptContent}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The url to the KQL script blob file. + # Must not be used together with scriptContent property + ${ScriptUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The SaS token that provide read access to the file which contain the script. + # Must be provided when using scriptUrl property. + ${ScriptUrlSasToken}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.Kusto.private\Update-AzKustoScript_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.Kusto.private\Update-AzKustoScript_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/README.md b/swaggerci/azure-kusto/exports/README.md new file mode 100644 index 000000000000..501b8f6f0d29 --- /dev/null +++ b/swaggerci/azure-kusto/exports/README.md @@ -0,0 +1,20 @@ +# Exports +This directory contains the cmdlets *exported by* `Az.Kusto`. No other cmdlets in this repository are directly exported. What that means is the `Az.Kusto` module will run [Export-ModuleMember](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/export-modulemember) on the cmldets in this directory. The cmdlets in this directory are generated at **build-time**. Do not put any custom code, files, cmdlets, etc. into this directory. Please use `../custom` for all custom implementation. + +## Info +- Modifiable: no +- Generated: all +- Committed: no +- Packaged: yes + +## Details +The cmdlets generated here are created every time you run `build-module.ps1`. These cmdlets are a merge of all (excluding `InternalExport`) cmdlets from the private binary (`../bin/Az.Kusto.private.dll`) and from the `../custom/Az.Kusto.custom.psm1` module. Cmdlets that are *not merged* from those directories are decorated with the `InternalExport` attribute. This happens when you set the cmdlet to **hide** from configuration. For more information on hiding, see [cmdlet hiding](https://github.com/Azure/autorest/blob/master/docs/powershell/options.md#cmdlet-hiding-exportation-suppression) or the [README.md](../internal/README.md) in the `../internal` folder. + +## Purpose +We generate script cmdlets out of the binary cmdlets and custom cmdlets. The format of script cmdlets are simplistic; thus, easier to generate at build time. Generating the cmdlets is required as to allow merging of generated binary, hand-written binary, and hand-written custom cmdlets. For Azure cmdlets, having script cmdlets simplifies the mechanism for exporting Azure profiles. + +## Structure +The cmdlets generated here will flat in the directory (no sub-folders) as long as there are no Azure profiles specified for any cmdlets. Azure profiles (the `Profiles` attribute) is only applied when generating with the `--azure` attribute (or `azure: true` in the configuration). When Azure profiles are applied, the folder structure has a folder per profile. Each profile folder has only those cmdlets that apply to that profile. + +## Usage +When `./Az.Kusto.psm1` is loaded, it dynamically exports cmdlets here based on the folder structure and on the selected profile. If there are no sub-folders, it exports all cmdlets at the root of this folder. If there are sub-folders, it checks to see the selected profile. If no profile is selected, it exports the cmdlets in the last sub-folder (alphabetically). If a profile is selected, it exports the cmdlets in the sub-folder that matches the profile name. If there is no sub-folder that matches the profile name, it exports no cmdlets and writes a warning message. \ No newline at end of file diff --git a/swaggerci/azure-kusto/exports/Remove-AzKustoAttachedDatabaseConfiguration.ps1 b/swaggerci/azure-kusto/exports/Remove-AzKustoAttachedDatabaseConfiguration.ps1 new file mode 100644 index 000000000000..bd34049b21a2 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Remove-AzKustoAttachedDatabaseConfiguration.ps1 @@ -0,0 +1,194 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Deletes the attached database configuration with the given name. +.Description +Deletes the attached database configuration with the given name. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustoattacheddatabaseconfiguration +#> +function Remove-AzKustoAttachedDatabaseConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('AttachedDatabaseConfigurationName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the attached database configuration. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoAttachedDatabaseConfiguration_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoAttachedDatabaseConfiguration_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Remove-AzKustoCluster.ps1 b/swaggerci/azure-kusto/exports/Remove-AzKustoCluster.ps1 new file mode 100644 index 000000000000..1424f7fec7b0 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Remove-AzKustoCluster.ps1 @@ -0,0 +1,188 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Deletes a Kusto cluster. +.Description +Deletes a Kusto cluster. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustocluster +#> +function Remove-AzKustoCluster { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ClusterName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoCluster_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoCluster_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Remove-AzKustoClusterLanguageExtension.ps1 b/swaggerci/azure-kusto/exports/Remove-AzKustoClusterLanguageExtension.ps1 new file mode 100644 index 000000000000..8a1371a898e5 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Remove-AzKustoClusterLanguageExtension.ps1 @@ -0,0 +1,219 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove a list of language extensions that can run within KQL queries. +.Description +Remove a list of language extensions that can run within KQL queries. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +LANGUAGEEXTENSIONSTOREMOVE : The list of language extension objects. + [Value ]: The list of language extensions. + [Name ]: The language extension name. + +VALUE : The list of language extensions. + [Name ]: The language extension name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustoclusterlanguageextension +#> +function Remove-AzKustoClusterLanguageExtension { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='RemoveExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Remove')] + [Parameter(ParameterSetName='RemoveExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Remove', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList] + # The list of language extension objects. + # To construct, see NOTES section for LANGUAGEEXTENSIONSTOREMOVE properties and create a hash table. + ${LanguageExtensionsToRemove}, + + [Parameter(ParameterSetName='RemoveExpanded')] + [Parameter(ParameterSetName='RemoveViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[]] + # The list of language extensions. + # To construct, see NOTES section for VALUE properties and create a hash table. + ${Value}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Remove = 'Az.Kusto.private\Remove-AzKustoClusterLanguageExtension_Remove'; + RemoveExpanded = 'Az.Kusto.private\Remove-AzKustoClusterLanguageExtension_RemoveExpanded'; + RemoveViaIdentity = 'Az.Kusto.private\Remove-AzKustoClusterLanguageExtension_RemoveViaIdentity'; + RemoveViaIdentityExpanded = 'Az.Kusto.private\Remove-AzKustoClusterLanguageExtension_RemoveViaIdentityExpanded'; + } + if (('Remove', 'RemoveExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Remove-AzKustoClusterPrincipalAssignment.ps1 b/swaggerci/azure-kusto/exports/Remove-AzKustoClusterPrincipalAssignment.ps1 new file mode 100644 index 000000000000..31c5ff093c29 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Remove-AzKustoClusterPrincipalAssignment.ps1 @@ -0,0 +1,193 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Deletes a Kusto cluster principalAssignment. +.Description +Deletes a Kusto cluster principalAssignment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustoclusterprincipalassignment +#> +function Remove-AzKustoClusterPrincipalAssignment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto principalAssignment. + ${PrincipalAssignmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoClusterPrincipalAssignment_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoClusterPrincipalAssignment_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Remove-AzKustoDataConnection.ps1 b/swaggerci/azure-kusto/exports/Remove-AzKustoDataConnection.ps1 new file mode 100644 index 000000000000..9bf08b23780f --- /dev/null +++ b/swaggerci/azure-kusto/exports/Remove-AzKustoDataConnection.ps1 @@ -0,0 +1,200 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Deletes the data connection with the given name. +.Description +Deletes the data connection with the given name. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustodataconnection +#> +function Remove-AzKustoDataConnection { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('DataConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the data connection. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoDataConnection_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoDataConnection_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Remove-AzKustoDatabase.ps1 b/swaggerci/azure-kusto/exports/Remove-AzKustoDatabase.ps1 new file mode 100644 index 000000000000..4e0b08cac3fe --- /dev/null +++ b/swaggerci/azure-kusto/exports/Remove-AzKustoDatabase.ps1 @@ -0,0 +1,194 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Deletes the database with the given name. +.Description +Deletes the database with the given name. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustodatabase +#> +function Remove-AzKustoDatabase { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('DatabaseName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoDatabase_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoDatabase_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Remove-AzKustoDatabasePrincipal.ps1 b/swaggerci/azure-kusto/exports/Remove-AzKustoDatabasePrincipal.ps1 new file mode 100644 index 000000000000..83411840122c --- /dev/null +++ b/swaggerci/azure-kusto/exports/Remove-AzKustoDatabasePrincipal.ps1 @@ -0,0 +1,218 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove Database principals permissions. +.Description +Remove Database principals permissions. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +DATABASEPRINCIPALSTOREMOVE : The list Kusto database principals operation request. + [Value ]: The list of Kusto database principals. + Name : Database principal name. + Role : Database principal role. + Type : Database principal type. + [AppId ]: Application id - relevant only for application principal type. + [Email ]: Database principal email if exists. + [Fqn ]: Database principal fully qualified name. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +VALUE : The list of Kusto database principals. + Name : Database principal name. + Role : Database principal role. + Type : Database principal type. + [AppId ]: Application id - relevant only for application principal type. + [Email ]: Database principal email if exists. + [Fqn ]: Database principal fully qualified name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustodatabaseprincipal +#> +function Remove-AzKustoDatabasePrincipal { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal])] +[CmdletBinding(DefaultParameterSetName='RemoveExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Remove')] + [Parameter(ParameterSetName='RemoveExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Remove', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest] + # The list Kusto database principals operation request. + # To construct, see NOTES section for DATABASEPRINCIPALSTOREMOVE properties and create a hash table. + ${DatabasePrincipalsToRemove}, + + [Parameter(ParameterSetName='RemoveExpanded')] + [Parameter(ParameterSetName='RemoveViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[]] + # The list of Kusto database principals. + # To construct, see NOTES section for VALUE properties and create a hash table. + ${Value}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Remove = 'Az.Kusto.private\Remove-AzKustoDatabasePrincipal_Remove'; + RemoveExpanded = 'Az.Kusto.private\Remove-AzKustoDatabasePrincipal_RemoveExpanded'; + RemoveViaIdentity = 'Az.Kusto.private\Remove-AzKustoDatabasePrincipal_RemoveViaIdentity'; + RemoveViaIdentityExpanded = 'Az.Kusto.private\Remove-AzKustoDatabasePrincipal_RemoveViaIdentityExpanded'; + } + if (('Remove', 'RemoveExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Remove-AzKustoDatabasePrincipalAssignment.ps1 b/swaggerci/azure-kusto/exports/Remove-AzKustoDatabasePrincipalAssignment.ps1 new file mode 100644 index 000000000000..5002c7168b68 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Remove-AzKustoDatabasePrincipalAssignment.ps1 @@ -0,0 +1,199 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Deletes a Kusto principalAssignment. +.Description +Deletes a Kusto principalAssignment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustodatabaseprincipalassignment +#> +function Remove-AzKustoDatabasePrincipalAssignment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto principalAssignment. + ${PrincipalAssignmentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoDatabasePrincipalAssignment_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoDatabasePrincipalAssignment_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Remove-AzKustoManagedPrivateEndpoint.ps1 b/swaggerci/azure-kusto/exports/Remove-AzKustoManagedPrivateEndpoint.ps1 new file mode 100644 index 000000000000..5489c922fb9a --- /dev/null +++ b/swaggerci/azure-kusto/exports/Remove-AzKustoManagedPrivateEndpoint.ps1 @@ -0,0 +1,194 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Deletes a managed private endpoint. +.Description +Deletes a managed private endpoint. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustomanagedprivateendpoint +#> +function Remove-AzKustoManagedPrivateEndpoint { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ManagedPrivateEndpointName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the managed private endpoint. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoManagedPrivateEndpoint_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoManagedPrivateEndpoint_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Remove-AzKustoPrivateEndpointConnection.ps1 b/swaggerci/azure-kusto/exports/Remove-AzKustoPrivateEndpointConnection.ps1 new file mode 100644 index 000000000000..7f28cb660d8f --- /dev/null +++ b/swaggerci/azure-kusto/exports/Remove-AzKustoPrivateEndpointConnection.ps1 @@ -0,0 +1,194 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Deletes a private endpoint connection with a given name. +.Description +Deletes a private endpoint connection with a given name. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustoprivateendpointconnection +#> +function Remove-AzKustoPrivateEndpointConnection { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('PrivateEndpointConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the private endpoint connection. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoPrivateEndpointConnection_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoPrivateEndpointConnection_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Remove-AzKustoScript.ps1 b/swaggerci/azure-kusto/exports/Remove-AzKustoScript.ps1 new file mode 100644 index 000000000000..e4b74aacb8f8 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Remove-AzKustoScript.ps1 @@ -0,0 +1,200 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Deletes a Kusto principalAssignment. +.Description +Deletes a Kusto principalAssignment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/remove-azkustoscript +#> +function Remove-AzKustoScript { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ScriptName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto database script. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Delete = 'Az.Kusto.private\Remove-AzKustoScript_Delete'; + DeleteViaIdentity = 'Az.Kusto.private\Remove-AzKustoScript_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Start-AzKustoCluster.ps1 b/swaggerci/azure-kusto/exports/Start-AzKustoCluster.ps1 new file mode 100644 index 000000000000..60c266c2c0c8 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Start-AzKustoCluster.ps1 @@ -0,0 +1,188 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Starts a Kusto cluster. +.Description +Starts a Kusto cluster. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/start-azkustocluster +#> +function Start-AzKustoCluster { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Start', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Start', Mandatory)] + [Alias('ClusterName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${Name}, + + [Parameter(ParameterSetName='Start', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Start')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='StartViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Start = 'Az.Kusto.private\Start-AzKustoCluster_Start'; + StartViaIdentity = 'Az.Kusto.private\Start-AzKustoCluster_StartViaIdentity'; + } + if (('Start') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Stop-AzKustoCluster.ps1 b/swaggerci/azure-kusto/exports/Stop-AzKustoCluster.ps1 new file mode 100644 index 000000000000..524ceb623858 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Stop-AzKustoCluster.ps1 @@ -0,0 +1,188 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Stops a Kusto cluster. +.Description +Stops a Kusto cluster. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/stop-azkustocluster +#> +function Stop-AzKustoCluster { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Stop', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Stop', Mandatory)] + [Alias('ClusterName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${Name}, + + [Parameter(ParameterSetName='Stop', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Stop')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='StopViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Stop = 'Az.Kusto.private\Stop-AzKustoCluster_Stop'; + StopViaIdentity = 'Az.Kusto.private\Stop-AzKustoCluster_StopViaIdentity'; + } + if (('Stop') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Test-AzKustoAttachedDatabaseConfigurationNameAvailability.ps1 b/swaggerci/azure-kusto/exports/Test-AzKustoAttachedDatabaseConfigurationNameAvailability.ps1 new file mode 100644 index 000000000000..f00cd673c35c --- /dev/null +++ b/swaggerci/azure-kusto/exports/Test-AzKustoAttachedDatabaseConfigurationNameAvailability.ps1 @@ -0,0 +1,195 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Checks that the attached database configuration resource name is valid and is not already in use. +.Description +Checks that the attached database configuration resource name is valid and is not already in use. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +RESOURCENAME : The result returned from a AttachedDatabaseConfigurations check name availability request. + Name : Attached database resource name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustoattacheddatabaseconfigurationnameavailability +#> +function Test-AzKustoAttachedDatabaseConfigurationNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest] + # The result returned from a AttachedDatabaseConfigurations check name availability request. + # To construct, see NOTES section for RESOURCENAME properties and create a hash table. + ${ResourceName}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Attached database resource name. + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Check = 'Az.Kusto.private\Test-AzKustoAttachedDatabaseConfigurationNameAvailability_Check'; + CheckExpanded = 'Az.Kusto.private\Test-AzKustoAttachedDatabaseConfigurationNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.Kusto.private\Test-AzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.Kusto.private\Test-AzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Test-AzKustoClusterNameAvailability.ps1 b/swaggerci/azure-kusto/exports/Test-AzKustoClusterNameAvailability.ps1 new file mode 100644 index 000000000000..11f69e5487b2 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Test-AzKustoClusterNameAvailability.ps1 @@ -0,0 +1,188 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Checks that the cluster name is valid and is not already in use. +.Description +Checks that the cluster name is valid and is not already in use. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +CLUSTERNAME : The result returned from a cluster check name availability request. + Name : Cluster name. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustoclusternameavailability +#> +function Test-AzKustoClusterNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # Azure location (region) name. + ${Location}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest] + # The result returned from a cluster check name availability request. + # To construct, see NOTES section for CLUSTERNAME properties and create a hash table. + ${ClusterName}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Cluster name. + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Check = 'Az.Kusto.private\Test-AzKustoClusterNameAvailability_Check'; + CheckExpanded = 'Az.Kusto.private\Test-AzKustoClusterNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.Kusto.private\Test-AzKustoClusterNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.Kusto.private\Test-AzKustoClusterNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Test-AzKustoClusterPrincipalAssignmentNameAvailability.ps1 b/swaggerci/azure-kusto/exports/Test-AzKustoClusterPrincipalAssignmentNameAvailability.ps1 new file mode 100644 index 000000000000..ac16bf064825 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Test-AzKustoClusterPrincipalAssignmentNameAvailability.ps1 @@ -0,0 +1,195 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Checks that the principal assignment name is valid and is not already in use. +.Description +Checks that the principal assignment name is valid and is not already in use. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +PRINCIPALASSIGNMENTNAME : A principal assignment check name availability request. + Name : Principal Assignment resource name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustoclusterprincipalassignmentnameavailability +#> +function Test-AzKustoClusterPrincipalAssignmentNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest] + # A principal assignment check name availability request. + # To construct, see NOTES section for PRINCIPALASSIGNMENTNAME properties and create a hash table. + ${PrincipalAssignmentName}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Principal Assignment resource name. + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Check = 'Az.Kusto.private\Test-AzKustoClusterPrincipalAssignmentNameAvailability_Check'; + CheckExpanded = 'Az.Kusto.private\Test-AzKustoClusterPrincipalAssignmentNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.Kusto.private\Test-AzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.Kusto.private\Test-AzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Test-AzKustoDataConnectionNameAvailability.ps1 b/swaggerci/azure-kusto/exports/Test-AzKustoDataConnectionNameAvailability.ps1 new file mode 100644 index 000000000000..5cdac8e6866c --- /dev/null +++ b/swaggerci/azure-kusto/exports/Test-AzKustoDataConnectionNameAvailability.ps1 @@ -0,0 +1,202 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Checks that the data connection name is valid and is not already in use. +.Description +Checks that the data connection name is valid and is not already in use. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +DATACONNECTIONNAME : A data connection check name availability request. + Name : Data Connection name. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustodataconnectionnameavailability +#> +function Test-AzKustoDataConnectionNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest] + # A data connection check name availability request. + # To construct, see NOTES section for DATACONNECTIONNAME properties and create a hash table. + ${DataConnectionName}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Data Connection name. + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Check = 'Az.Kusto.private\Test-AzKustoDataConnectionNameAvailability_Check'; + CheckExpanded = 'Az.Kusto.private\Test-AzKustoDataConnectionNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.Kusto.private\Test-AzKustoDataConnectionNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.Kusto.private\Test-AzKustoDataConnectionNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Test-AzKustoDatabaseNameAvailability.ps1 b/swaggerci/azure-kusto/exports/Test-AzKustoDatabaseNameAvailability.ps1 new file mode 100644 index 000000000000..beb7f551fa50 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Test-AzKustoDatabaseNameAvailability.ps1 @@ -0,0 +1,204 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Checks that the databases resource name is valid and is not already in use. +.Description +Checks that the databases resource name is valid and is not already in use. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +RESOURCENAME : The result returned from a database check name availability request. + Name : Resource name. + Type : The type of resource, for instance Microsoft.Kusto/clusters/databases. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustodatabasenameavailability +#> +function Test-AzKustoDatabaseNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest] + # The result returned from a database check name availability request. + # To construct, see NOTES section for RESOURCENAME properties and create a hash table. + ${ResourceName}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource name. + ${Name}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type] + # The type of resource, for instance Microsoft.Kusto/clusters/databases. + ${Type}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Check = 'Az.Kusto.private\Test-AzKustoDatabaseNameAvailability_Check'; + CheckExpanded = 'Az.Kusto.private\Test-AzKustoDatabaseNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.Kusto.private\Test-AzKustoDatabaseNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.Kusto.private\Test-AzKustoDatabaseNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Test-AzKustoDatabasePrincipalAssignmentNameAvailability.ps1 b/swaggerci/azure-kusto/exports/Test-AzKustoDatabasePrincipalAssignmentNameAvailability.ps1 new file mode 100644 index 000000000000..5f32aade4474 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Test-AzKustoDatabasePrincipalAssignmentNameAvailability.ps1 @@ -0,0 +1,202 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Checks that the database principal assignment is valid and is not already in use. +.Description +Checks that the database principal assignment is valid and is not already in use. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +PRINCIPALASSIGNMENTNAME : A principal assignment check name availability request. + Name : Principal Assignment resource name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustodatabaseprincipalassignmentnameavailability +#> +function Test-AzKustoDatabasePrincipalAssignmentNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest] + # A principal assignment check name availability request. + # To construct, see NOTES section for PRINCIPALASSIGNMENTNAME properties and create a hash table. + ${PrincipalAssignmentName}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Principal Assignment resource name. + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Check = 'Az.Kusto.private\Test-AzKustoDatabasePrincipalAssignmentNameAvailability_Check'; + CheckExpanded = 'Az.Kusto.private\Test-AzKustoDatabasePrincipalAssignmentNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.Kusto.private\Test-AzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.Kusto.private\Test-AzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Test-AzKustoManagedPrivateEndpointNameAvailability.ps1 b/swaggerci/azure-kusto/exports/Test-AzKustoManagedPrivateEndpointNameAvailability.ps1 new file mode 100644 index 000000000000..5cf37f03ccd1 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Test-AzKustoManagedPrivateEndpointNameAvailability.ps1 @@ -0,0 +1,195 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Checks that the managed private endpoints resource name is valid and is not already in use. +.Description +Checks that the managed private endpoints resource name is valid and is not already in use. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +RESOURCENAME : The result returned from a managedPrivateEndpoints check name availability request. + Name : Managed private endpoint resource name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustomanagedprivateendpointnameavailability +#> +function Test-AzKustoManagedPrivateEndpointNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest] + # The result returned from a managedPrivateEndpoints check name availability request. + # To construct, see NOTES section for RESOURCENAME properties and create a hash table. + ${ResourceName}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Managed private endpoint resource name. + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Check = 'Az.Kusto.private\Test-AzKustoManagedPrivateEndpointNameAvailability_Check'; + CheckExpanded = 'Az.Kusto.private\Test-AzKustoManagedPrivateEndpointNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.Kusto.private\Test-AzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.Kusto.private\Test-AzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Test-AzKustoScriptNameAvailability.ps1 b/swaggerci/azure-kusto/exports/Test-AzKustoScriptNameAvailability.ps1 new file mode 100644 index 000000000000..14bffeae6949 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Test-AzKustoScriptNameAvailability.ps1 @@ -0,0 +1,202 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Checks that the script name is valid and is not already in use. +.Description +Checks that the script name is valid and is not already in use. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +SCRIPTNAME : A script name availability request. + Name : Script name. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/test-azkustoscriptnameavailability +#> +function Test-AzKustoScriptNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest] + # A script name availability request. + # To construct, see NOTES section for SCRIPTNAME properties and create a hash table. + ${ScriptName}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Script name. + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + Check = 'Az.Kusto.private\Test-AzKustoScriptNameAvailability_Check'; + CheckExpanded = 'Az.Kusto.private\Test-AzKustoScriptNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.Kusto.private\Test-AzKustoScriptNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.Kusto.private\Test-AzKustoScriptNameAvailability_CheckViaIdentityExpanded'; + } + if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Update-AzKustoCluster.ps1 b/swaggerci/azure-kusto/exports/Update-AzKustoCluster.ps1 new file mode 100644 index 000000000000..729ba8929b17 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Update-AzKustoCluster.ps1 @@ -0,0 +1,408 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update a Kusto cluster. +.Description +Update a Kusto cluster. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +ACCEPTEDAUDIENCE : The cluster's accepted audiences. + [Value ]: GUID or valid URL representing an accepted audience. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +TRUSTEDEXTERNALTENANT : The cluster's external tenants. + [Value ]: GUID representing an external tenant. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/update-azkustocluster +#> +function Update-AzKustoCluster { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ClusterName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Header')] + [System.String] + # The ETag of the cluster. + # Omit this value to always overwrite the current cluster. + # Specify the last-seen ETag value to prevent accidentally overwriting concurrent changes. + ${IfMatch}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[]] + # The cluster's accepted audiences. + # To construct, see NOTES section for ACCEPTEDAUDIENCE properties and create a hash table. + ${AcceptedAudience}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + ${AllowedFqdnList}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String[]] + # The list of ips in the format of CIDR allowed to connect to the cluster. + ${AllowedIPRangeList}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days). + ${EnableAutoStop}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if the cluster's disks are encrypted. + ${EnableDiskEncryption}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if double encryption is enabled. + ${EnableDoubleEncryption}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if the purge operations are enabled. + ${EnablePurge}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicates if the streaming ingest is enabled. + ${EnableStreamingIngest}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType] + # The engine type + ${EngineType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType] + # 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 all identities. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the Kusto cluster. + # The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The name of the key vault key. + ${KeyVaultPropertyKeyName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The Uri of the key vault. + ${KeyVaultPropertyKeyVaultUri}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The version of the key vault key. + ${KeyVaultPropertyKeyVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The user assigned identity (ARM resource id) that has access to the key. + ${KeyVaultPropertyUserIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource location. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # A boolean value that indicate if the optimized autoscale feature is enabled or not. + ${OptimizedAutoscaleIsEnabled}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Int32] + # Maximum allowed instances count. + ${OptimizedAutoscaleMaximum}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Int32] + # Minimum allowed instances count. + ${OptimizedAutoscaleMinimum}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Int32] + # The version of the template defined, for instance 1. + ${OptimizedAutoscaleVersion}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType] + # Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + ${PublicIPType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess] + # Public network access to the cluster is enabled by default. + # When disabled, only private endpoint connection to the cluster is allowed + ${PublicNetworkAccess}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag] + # Whether or not to restrict outbound network access. + # Value is optional but if passed in, must be 'Enabled' or 'Disabled' + ${RestrictOutboundNetworkAccess}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Int32] + # The number of instances of the cluster. + ${SkuCapacity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName] + # SKU name. + ${SkuName}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier] + # SKU tier. + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags]))] + [System.Collections.Hashtable] + # Resource tags. + ${Tag}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[]] + # The cluster's external tenants. + # To construct, see NOTES section for TRUSTEDEXTERNALTENANT properties and create a hash table. + ${TrustedExternalTenant}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Virtual Cluster graduation properties + ${VirtualClusterGraduationProperty}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Data management's service public IP address resource id. + ${VirtualNetworkConfigurationDataManagementPublicIPId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Engine service's public IP address resource id. + ${VirtualNetworkConfigurationEnginePublicIPId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The subnet resource id. + ${VirtualNetworkConfigurationSubnetId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.Kusto.private\Update-AzKustoCluster_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.Kusto.private\Update-AzKustoCluster_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Update-AzKustoDataConnection.ps1 b/swaggerci/azure-kusto/exports/Update-AzKustoDataConnection.ps1 new file mode 100644 index 000000000000..2bd85250be49 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Update-AzKustoDataConnection.ps1 @@ -0,0 +1,207 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Updates a data connection. +.Description +Updates a data connection. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/update-azkustodataconnection +#> +function Update-AzKustoDataConnection { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('DataConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the data connection. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind] + # Kind of the endpoint for the data connection + ${Kind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource location. + ${Location}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.Kusto.private\Update-AzKustoDataConnection_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.Kusto.private\Update-AzKustoDataConnection_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Update-AzKustoDatabase.ps1 b/swaggerci/azure-kusto/exports/Update-AzKustoDatabase.ps1 new file mode 100644 index 000000000000..8263564f4fab --- /dev/null +++ b/swaggerci/azure-kusto/exports/Update-AzKustoDatabase.ps1 @@ -0,0 +1,201 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Updates a database. +.Description +Updates a database. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/update-azkustodatabase +#> +function Update-AzKustoDatabase { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('DatabaseName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind])] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind] + # Kind of the database + ${Kind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # Resource location. + ${Location}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.Kusto.private\Update-AzKustoDatabase_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.Kusto.private\Update-AzKustoDatabase_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Update-AzKustoManagedPrivateEndpoint.ps1 b/swaggerci/azure-kusto/exports/Update-AzKustoManagedPrivateEndpoint.ps1 new file mode 100644 index 000000000000..15d890ffcd33 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Update-AzKustoManagedPrivateEndpoint.ps1 @@ -0,0 +1,212 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Updates a managed private endpoint. +.Description +Updates a managed private endpoint. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/update-azkustomanagedprivateendpoint +#> +function Update-AzKustoManagedPrivateEndpoint { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ManagedPrivateEndpointName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the managed private endpoint. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The groupId in which the managed private endpoint is created. + ${GroupId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The ARM resource ID of the resource for which the managed private endpoint is created. + ${PrivateLinkResourceId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The region of the resource to which the managed private endpoint is created. + ${PrivateLinkResourceRegion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The user request message. + ${RequestMessage}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.Kusto.private\Update-AzKustoManagedPrivateEndpoint_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.Kusto.private\Update-AzKustoManagedPrivateEndpoint_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/exports/Update-AzKustoScript.ps1 b/swaggerci/azure-kusto/exports/Update-AzKustoScript.ps1 new file mode 100644 index 000000000000..1b08f8eaea46 --- /dev/null +++ b/swaggerci/azure-kusto/exports/Update-AzKustoScript.ps1 @@ -0,0 +1,229 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Updates a database script. +.Description +Updates a database script. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AttachedDatabaseConfigurationName ]: The name of the attached database configuration. + [ClusterName ]: The name of the Kusto cluster. + [DataConnectionName ]: The name of the data connection. + [DatabaseName ]: The name of the database in the Kusto cluster. + [Id ]: Resource identity path + [Location ]: Azure location (region) name. + [ManagedPrivateEndpointName ]: The name of the managed private endpoint. + [OperationId ]: The Guid of the operation ID + [PrincipalAssignmentName ]: The name of the Kusto principalAssignment. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection. + [PrivateLinkResourceName ]: The name of the private link resource. + [ResourceGroupName ]: The name of the resource group containing the Kusto cluster. + [ScriptName ]: The name of the Kusto database script. + [SubscriptionId ]: Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.kusto/update-azkustoscript +#> +function Update-AzKustoScript { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto cluster. + ${ClusterName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the database in the Kusto cluster. + ${DatabaseName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ScriptName')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the Kusto database script. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [System.String] + # The name of the resource group containing the Kusto cluster. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription credentials which uniquely identify Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Flag that indicates whether to continue if one of the command fails. + ${ContinueOnError}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # A unique string. + # If changed the script will be applied again. + ${ForceUpdateTag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The script content. + # This property should be used when the script is provide inline and not through file in a SA. + # Must not be used together with scriptUrl and scriptUrlSasToken properties. + ${ScriptContent}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The url to the KQL script blob file. + # Must not be used together with scriptContent property + ${ScriptUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Body')] + [System.String] + # The SaS token that provide read access to the file which contain the script. + # Must be provided when using scriptUrl property. + ${ScriptUrlSasToken}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + $mapping = @{ + UpdateExpanded = 'Az.Kusto.private\Update-AzKustoScript_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.Kusto.private\Update-AzKustoScript_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + throw + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/swaggerci/azure-kusto/generate-help.ps1 b/swaggerci/azure-kusto/generate-help.ps1 new file mode 100644 index 000000000000..8b7b41459552 --- /dev/null +++ b/swaggerci/azure-kusto/generate-help.ps1 @@ -0,0 +1,66 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated) +$ErrorActionPreference = 'Stop' + +$pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path +if(-not $Isolated) { + Write-Host -ForegroundColor Green 'Creating isolated process...' + & "$pwsh" -NonInteractive -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + return +} + +$exportsFolder = Join-Path $PSScriptRoot 'exports' +if(-not (Test-Path $exportsFolder)) { + Write-Error "Exports folder '$exportsFolder' was not found." +} + +$directories = Get-ChildItem -Directory -Path $exportsFolder +$hasProfiles = ($directories | Measure-Object).Count -gt 0 +if(-not $hasProfiles) { + $directories = Get-Item -Path $exportsFolder +} + +$docsFolder = Join-Path $PSScriptRoot 'docs' +if(Test-Path $docsFolder) { + $null = Get-ChildItem -Path $docsFolder -Recurse -Exclude 'README.md' | Remove-Item -Recurse -ErrorAction SilentlyContinue +} +$null = New-Item -ItemType Directory -Force -Path $docsFolder -ErrorAction SilentlyContinue +$examplesFolder = Join-Path $PSScriptRoot 'examples' + +$modulePsd1 = Get-Item -Path (Join-Path $PSScriptRoot './Az.Kusto.psd1') +$modulePath = $modulePsd1.FullName +$moduleName = $modulePsd1.BaseName + +# Load DLL to use build-time cmdlets +Import-Module -Name $modulePath +Import-Module -Name (Join-Path $PSScriptRoot './bin/Az.Kusto.private.dll') +$instance = [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module]::Instance +# Module info is shared per profile +$moduleInfo = Get-Module -Name $moduleName + +foreach($directory in $directories) +{ + if($hasProfiles) { + Select-AzProfile -Name $directory.Name + } + # Reload module per profile + Import-Module -Name $modulePath -Force + + $cmdletNames = Get-ScriptCmdlet -ScriptFolder $directory.FullName + $cmdletHelpInfo = $cmdletNames | ForEach-Object { Get-Help -Name $_ -Full } + $cmdletFunctionInfo = Get-ScriptCmdlet -ScriptFolder $directory.FullName -AsFunctionInfo + + $docsPath = Join-Path $docsFolder $directory.Name + $null = New-Item -ItemType Directory -Force -Path $docsPath -ErrorAction SilentlyContinue + $examplesPath = Join-Path $examplesFolder $directory.Name + + Export-HelpMarkdown -ModuleInfo $moduleInfo -FunctionInfo $cmdletFunctionInfo -HelpInfo $cmdletHelpInfo -DocsFolder $docsPath -ExamplesFolder $examplesPath + Write-Host -ForegroundColor Green "Created documentation in '$docsPath'" +} + +Write-Host -ForegroundColor Green '-------------Done-------------' \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/Module.cs b/swaggerci/azure-kusto/generated/Module.cs new file mode 100644 index 000000000000..d048ddcb1b7e --- /dev/null +++ b/swaggerci/azure-kusto/generated/Module.cs @@ -0,0 +1,173 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using SendAsyncStepDelegate = global::System.Func, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>; + using PipelineChangeDelegate = global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>; + using GetParameterDelegate = global::System.Func; + using ModuleLoadPipelineDelegate = global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>, global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>>; + using ArgumentCompleterDelegate = global::System.Func; + using NewRequestPipelineDelegate = global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>, global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>>; + using SignalDelegate = global::System.Func, global::System.Threading.Tasks.Task>; + using EventListenerDelegate = global::System.Func, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Management.Automation.InvocationInfo, string, string, string, global::System.Exception, global::System.Threading.Tasks.Task>; + using NextDelegate = global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>; + + /// A class that contains the module-common code and data. + public partial class Module + { + /// The currently selected profile. + public string Profile = global::System.String.Empty; + + public global::System.Net.Http.HttpClientHandler _handler = new global::System.Net.Http.HttpClientHandler(); + + /// the ISendAsync pipeline instance + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline _pipeline; + + /// the ISendAsync pipeline instance (when proxy is enabled) + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline _pipelineWithProxy; + + public bool _useProxy = false; + + public global::System.Net.WebProxy _webProxy = new global::System.Net.WebProxy(); + + /// Gets completion data for azure specific fields + public ArgumentCompleterDelegate ArgumentCompleter { get; set; } + + /// The instance of the Client API + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient ClientAPI { get; set; } + + /// A delegate that gets called for each signalled event + public EventListenerDelegate EventListener { get; set; } + + /// The delegate to call to get parameter data from a common module. + public GetParameterDelegate GetParameterValue { get; set; } + + /// Backing field for property. + private static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module _instance; + + /// the singleton of this module class + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module Instance => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module._instance?? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module._instance = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module()); + + /// The Name of this module + public string Name => @"Az.Kusto"; + + /// The delegate to call when this module is loaded (supporting a commmon module). + public ModuleLoadPipelineDelegate OnModuleLoad { get; set; } + + /// The delegate to call before each new request (supporting a commmon module). + public NewRequestPipelineDelegate OnNewRequest { get; set; } + + /// The name of the currently selected Azure profile + public global::System.String ProfileName { get; set; } + + /// The ResourceID for this module (azure arm). + public string ResourceId => @"Az.Kusto"; + + /// The from the cmdlet + /// The HttpPipeline for the request + + partial void AfterCreatePipeline(global::System.Management.Automation.InvocationInfo invocationInfo, ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline pipeline); + + /// The from the cmdlet + /// The HttpPipeline for the request + + partial void BeforeCreatePipeline(global::System.Management.Automation.InvocationInfo invocationInfo, ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline pipeline); + + partial void CustomInit(); + + /// Creates an instance of the HttpPipeline for each call. + /// The from the cmdlet + /// the cmdlet's correlation id. + /// the cmdlet's process record correlation id. + /// the cmdlet's parameterset name. + /// a dict for extensible parameters + /// An instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline for the remote call. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline CreatePipeline(global::System.Management.Automation.InvocationInfo invocationInfo, string correlationId, string processRecordId, string parameterSetName = null, global::System.Collections.Generic.IDictionary extensibleParameters = null) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline pipeline = null; + BeforeCreatePipeline(invocationInfo, ref pipeline); + pipeline = (pipeline ?? (_useProxy ? _pipelineWithProxy : _pipeline)).Clone(); + AfterCreatePipeline(invocationInfo, ref pipeline); + pipeline.Append(new Runtime.CmdInfoHandler(processRecordId, invocationInfo, parameterSetName).SendAsync); + OnNewRequest?.Invoke( invocationInfo, correlationId,processRecordId, (step)=> { pipeline.Prepend(step); } , (step)=> { pipeline.Append(step); } ); + return pipeline; + } + + /// Gets parameters from a common module. + /// The from the cmdlet + /// the cmdlet's correlation id. + /// The name of the parameter to get the value for. + /// + /// The parameter value from the common module. (Note: this should be type converted on the way back) + /// + public object GetParameter(global::System.Management.Automation.InvocationInfo invocationInfo, string correlationId, string parameterName) => GetParameterValue?.Invoke( ResourceId, Name, invocationInfo, correlationId,parameterName ); + + /// Initialization steps performed after the module is loaded. + public void Init() + { + OnModuleLoad?.Invoke( ResourceId, Name ,(step)=> { _pipeline.Prepend(step); } , (step)=> { _pipeline.Append(step); } ); + OnModuleLoad?.Invoke( ResourceId, Name ,(step)=> { _pipelineWithProxy.Prepend(step); } , (step)=> { _pipelineWithProxy.Append(step); } ); + CustomInit(); + } + + /// Creates the module instance. + private Module() + { + /// constructor + ClientAPI = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient(); + _handler.Proxy = _webProxy; + _pipeline = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpClientFactory(new global::System.Net.Http.HttpClient())); + _pipelineWithProxy = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpClientFactory(new global::System.Net.Http.HttpClient(_handler))); + } + + /// The HTTP Proxy to use. + /// The HTTP Proxy Credentials + /// True if the proxy should use default credentials + public void SetProxyConfiguration(global::System.Uri proxy, global::System.Management.Automation.PSCredential proxyCredential, bool proxyUseDefaultCredentials) + { + _useProxy = proxy != null; + if (proxy == null) + { + return; + } + // set the proxy configuration + _webProxy.Address = proxy; + _webProxy.BypassProxyOnLocal = false; + if (proxyUseDefaultCredentials) + { + _webProxy.Credentials = null; + _webProxy.UseDefaultCredentials = true; + } + else + { + _webProxy.UseDefaultCredentials = false; + _webProxy.Credentials = proxyCredential ?.GetNetworkCredential(); + } + } + + /// Called to dispatch events to the common module listener + /// The ID of the event + /// The cancellation token for the event + /// A delegate to get the detailed event data + /// The callback for the event dispatcher + /// The from the cmdlet + /// the cmdlet's parameterset name. + /// the cmdlet's correlation id. + /// the cmdlet's process record correlation id. + /// the exception that is being thrown (if available) + /// + /// A that will be complete when handling of the event is completed. + /// + public async global::System.Threading.Tasks.Task Signal(string id, global::System.Threading.CancellationToken token, global::System.Func getEventData, SignalDelegate signal, global::System.Management.Automation.InvocationInfo invocationInfo, string parameterSetName, string correlationId, string processRecordId, global::System.Exception exception) + { + using( NoSynchronizationContext ) + { + await EventListener?.Invoke(id,token,getEventData, signal, invocationInfo, parameterSetName, correlationId,processRecordId,exception); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/KustoManagementClient.cs b/swaggerci/azure-kusto/generated/api/KustoManagementClient.cs new file mode 100644 index 000000000000..267771b73613 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/KustoManagementClient.cs @@ -0,0 +1,15684 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// Low-level API implementation for the KustoManagementClient service. + /// The Azure Kusto management API provides a RESTful set of web services that interact with Azure Kusto services to manage + /// your clusters and databases. The API enables you to create, update, and delete clusters and databases. + /// + public partial class KustoManagementClient + { + + /// + /// Checks that the attached database configuration resource name is valid and is not already in use. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsCheckNameAvailability(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/attachedDatabaseConfigurationCheckNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AttachedDatabaseConfigurationsCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Checks that the attached database configuration resource name is valid and is not already in use. + /// + /// + /// The name of the resource. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsCheckNameAvailabilityViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/attachedDatabaseConfigurationCheckNameAvailability$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/attachedDatabaseConfigurationCheckNameAvailability'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/attachedDatabaseConfigurationCheckNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AttachedDatabaseConfigurationsCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsCheckNameAvailability_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CheckNameResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual + /// call, but you will get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsCheckNameAvailability_Validate(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Creates or updates an attached database configuration. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the attached database configuration. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The database parameters supplied to the CreateOrUpdate operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsCreateOrUpdate(string resourceGroupName, string clusterName, string attachedDatabaseConfigurationName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/attachedDatabaseConfigurations/" + + global::System.Uri.EscapeDataString(attachedDatabaseConfigurationName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AttachedDatabaseConfigurationsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Creates or updates an attached database configuration. + /// + /// The database parameters supplied to the CreateOrUpdate operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/attachedDatabaseConfigurations/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/attachedDatabaseConfigurations/{attachedDatabaseConfigurationName}'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var attachedDatabaseConfigurationName = _match.Groups["attachedDatabaseConfigurationName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/attachedDatabaseConfigurations/" + + attachedDatabaseConfigurationName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AttachedDatabaseConfigurationsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfiguration.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the attached database configuration. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The database parameters supplied to the CreateOrUpdate operation. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsCreateOrUpdate_Validate(string resourceGroupName, string clusterName, string attachedDatabaseConfigurationName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(attachedDatabaseConfigurationName),attachedDatabaseConfigurationName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Deletes the attached database configuration with the given name. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the attached database configuration. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsDelete(string resourceGroupName, string clusterName, string attachedDatabaseConfigurationName, string subscriptionId, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/attachedDatabaseConfigurations/" + + global::System.Uri.EscapeDataString(attachedDatabaseConfigurationName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AttachedDatabaseConfigurationsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Deletes the attached database configuration with the given name. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/attachedDatabaseConfigurations/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/attachedDatabaseConfigurations/{attachedDatabaseConfigurationName}'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var attachedDatabaseConfigurationName = _match.Groups["attachedDatabaseConfigurationName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/attachedDatabaseConfigurations/" + + attachedDatabaseConfigurationName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AttachedDatabaseConfigurationsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + case global::System.Net.HttpStatusCode.NoContent: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the attached database configuration. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsDelete_Validate(string resourceGroupName, string clusterName, string attachedDatabaseConfigurationName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(attachedDatabaseConfigurationName),attachedDatabaseConfigurationName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Returns an attached database configuration. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the attached database configuration. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsGet(string resourceGroupName, string clusterName, string attachedDatabaseConfigurationName, string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/attachedDatabaseConfigurations/" + + global::System.Uri.EscapeDataString(attachedDatabaseConfigurationName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AttachedDatabaseConfigurationsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Returns an attached database configuration. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/attachedDatabaseConfigurations/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/attachedDatabaseConfigurations/{attachedDatabaseConfigurationName}'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var attachedDatabaseConfigurationName = _match.Groups["attachedDatabaseConfigurationName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/attachedDatabaseConfigurations/" + + attachedDatabaseConfigurationName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AttachedDatabaseConfigurationsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfiguration.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the attached database configuration. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsGet_Validate(string resourceGroupName, string clusterName, string attachedDatabaseConfigurationName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(attachedDatabaseConfigurationName),attachedDatabaseConfigurationName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// + /// Returns the list of attached database configurations of the given Kusto cluster. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsListByCluster(string resourceGroupName, string clusterName, string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/attachedDatabaseConfigurations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AttachedDatabaseConfigurationsListByCluster_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Returns the list of attached database configurations of the given Kusto cluster. + /// + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsListByClusterViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/attachedDatabaseConfigurations$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/attachedDatabaseConfigurations'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/attachedDatabaseConfigurations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AttachedDatabaseConfigurationsListByCluster_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsListByCluster_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfigurationListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task AttachedDatabaseConfigurationsListByCluster_Validate(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Checks that the principal assignment name is valid and is not already in use. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the principal assignment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsCheckNameAvailability(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/checkPrincipalAssignmentNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClusterPrincipalAssignmentsCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Checks that the principal assignment name is valid and is not already in use. + /// + /// The name of the principal assignment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsCheckNameAvailabilityViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/checkPrincipalAssignmentNameAvailability$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/checkPrincipalAssignmentNameAvailability'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/checkPrincipalAssignmentNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClusterPrincipalAssignmentsCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsCheckNameAvailability_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CheckNameResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual + /// call, but you will get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the principal assignment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsCheckNameAvailability_Validate(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Create a Kusto cluster principalAssignment. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the Kusto principalAssignment. + /// The Kusto cluster principalAssignment's parameters supplied for the operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsCreateOrUpdate(string subscriptionId, string resourceGroupName, string clusterName, string principalAssignmentName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/principalAssignments/" + + global::System.Uri.EscapeDataString(principalAssignmentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClusterPrincipalAssignmentsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create a Kusto cluster principalAssignment. + /// + /// The Kusto cluster principalAssignment's parameters supplied for the operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/principalAssignments/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/principalAssignments/{principalAssignmentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var principalAssignmentName = _match.Groups["principalAssignmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/principalAssignments/" + + principalAssignmentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClusterPrincipalAssignmentsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalAssignment.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the Kusto principalAssignment. + /// The Kusto cluster principalAssignment's parameters supplied for the operation. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string clusterName, string principalAssignmentName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(principalAssignmentName),principalAssignmentName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Deletes a Kusto cluster principalAssignment. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the Kusto principalAssignment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsDelete(string subscriptionId, string resourceGroupName, string clusterName, string principalAssignmentName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/principalAssignments/" + + global::System.Uri.EscapeDataString(principalAssignmentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClusterPrincipalAssignmentsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Deletes a Kusto cluster principalAssignment. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/principalAssignments/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/principalAssignments/{principalAssignmentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var principalAssignmentName = _match.Groups["principalAssignmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/principalAssignments/" + + principalAssignmentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClusterPrincipalAssignmentsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + case global::System.Net.HttpStatusCode.NoContent: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the Kusto principalAssignment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsDelete_Validate(string subscriptionId, string resourceGroupName, string clusterName, string principalAssignmentName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(principalAssignmentName),principalAssignmentName); + } + } + + /// Gets a Kusto cluster principalAssignment. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the Kusto principalAssignment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsGet(string subscriptionId, string resourceGroupName, string clusterName, string principalAssignmentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/principalAssignments/" + + global::System.Uri.EscapeDataString(principalAssignmentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClusterPrincipalAssignmentsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Gets a Kusto cluster principalAssignment. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/principalAssignments/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/principalAssignments/{principalAssignmentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var principalAssignmentName = _match.Groups["principalAssignmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/principalAssignments/" + + principalAssignmentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClusterPrincipalAssignmentsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalAssignment.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the Kusto principalAssignment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsGet_Validate(string subscriptionId, string resourceGroupName, string clusterName, string principalAssignmentName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(principalAssignmentName),principalAssignmentName); + } + } + + /// Lists all Kusto cluster principalAssignments. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsList(string subscriptionId, string resourceGroupName, string clusterName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/principalAssignments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClusterPrincipalAssignmentsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Lists all Kusto cluster principalAssignments. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsListViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/principalAssignments$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/principalAssignments'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/principalAssignments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClusterPrincipalAssignmentsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalAssignmentListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClusterPrincipalAssignmentsList_Validate(string subscriptionId, string resourceGroupName, string clusterName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + } + } + + /// Add a list of language extensions that can run within KQL queries. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The language extensions to add. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersAddLanguageExtensions(string subscriptionId, string resourceGroupName, string clusterName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/addLanguageExtensions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersAddLanguageExtensions_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Add a list of language extensions that can run within KQL queries. + /// + /// The language extensions to add. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersAddLanguageExtensionsViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/addLanguageExtensions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/addLanguageExtensions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/addLanguageExtensions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersAddLanguageExtensions_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersAddLanguageExtensions_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The language extensions to add. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersAddLanguageExtensions_Validate(string subscriptionId, string resourceGroupName, string clusterName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Checks that the cluster name is valid and is not already in use. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// Azure location (region) name. + /// The name of the cluster. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersCheckNameAvailability(string subscriptionId, string location, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.Kusto/locations/" + + global::System.Uri.EscapeDataString(location) + + "/checkNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Checks that the cluster name is valid and is not already in use. + /// + /// The name of the cluster. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersCheckNameAvailabilityViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/providers/Microsoft.Kusto/locations/(?[^/]+)/checkNameAvailability$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/locations/{location}/checkNameAvailability'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var location = _match.Groups["location"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/providers/Microsoft.Kusto/locations/" + + location + + "/checkNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersCheckNameAvailability_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CheckNameResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// Azure location (region) name. + /// The name of the cluster. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersCheckNameAvailability_Validate(string subscriptionId, string location, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(location),location); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Create or update a Kusto cluster. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen + /// ETag value to prevent accidentally overwriting concurrent changes. + /// Set to '*' to allow a new cluster to be created, but to prevent updating an existing cluster. + /// Other values will result in a 412 Pre-condition Failed response. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The Kusto cluster parameters supplied to the CreateOrUpdate operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersCreateOrUpdate(string resourceGroupName, string clusterName, string ifMatch, string ifNoneMatch, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // add headers parameters + if (null != ifMatch) + { + request.Headers.Add("If-Match",ifMatch); + } + if (null != ifNoneMatch) + { + request.Headers.Add("If-None-Match",ifNoneMatch); + } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or update a Kusto cluster. + /// + /// The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen + /// ETag value to prevent accidentally overwriting concurrent changes. + /// Set to '*' to allow a new cluster to be created, but to prevent updating an existing cluster. + /// Other values will result in a 412 Pre-condition Failed response. + /// The Kusto cluster parameters supplied to the CreateOrUpdate operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersCreateOrUpdateViaIdentity(global::System.String viaIdentity, string ifMatch, string ifNoneMatch, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // add headers parameters + if (null != ifMatch) + { + request.Headers.Add("If-Match",ifMatch); + } + if (null != ifNoneMatch) + { + request.Headers.Add("If-None-Match",ifNoneMatch); + } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Cluster.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) .ReadHeaders(_response.Headers))); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen + /// ETag value to prevent accidentally overwriting concurrent changes. + /// Set to '*' to allow a new cluster to be created, but to prevent updating an existing cluster. + /// Other values will result in a 412 Pre-condition Failed response. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The Kusto cluster parameters supplied to the CreateOrUpdate operation. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersCreateOrUpdate_Validate(string resourceGroupName, string clusterName, string ifMatch, string ifNoneMatch, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(ifMatch),ifMatch); + await eventListener.AssertNotNull(nameof(ifNoneMatch),ifNoneMatch); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Deletes a Kusto cluster. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersDelete(string resourceGroupName, string clusterName, string subscriptionId, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Deletes a Kusto cluster. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + case global::System.Net.HttpStatusCode.NoContent: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersDelete_Validate(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Detaches all followers of a database owned by this cluster. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The follower databases properties to remove. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersDetachFollowerDatabases(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/detachFollowerDatabases" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersDetachFollowerDatabases_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Detaches all followers of a database owned by this cluster. + /// + /// The follower databases properties to remove. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersDetachFollowerDatabasesViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/detachFollowerDatabases$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/detachFollowerDatabases'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/detachFollowerDatabases" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersDetachFollowerDatabases_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersDetachFollowerDatabases_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The follower databases properties to remove. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersDetachFollowerDatabases_Validate(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// + /// Diagnoses network connectivity status for external resources on which the service is dependent on. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersDiagnoseVirtualNetwork(string resourceGroupName, string clusterName, string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/diagnoseVirtualNetwork" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersDiagnoseVirtualNetwork_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Diagnoses network connectivity status for external resources on which the service is dependent on. + /// + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersDiagnoseVirtualNetworkViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/diagnoseVirtualNetwork$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/diagnoseVirtualNetwork'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/diagnoseVirtualNetwork" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersDiagnoseVirtualNetwork_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersDiagnoseVirtualNetwork_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: location + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DiagnoseVirtualNetworkResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersDiagnoseVirtualNetwork_Validate(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Gets a Kusto cluster. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersGet(string resourceGroupName, string clusterName, string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Gets a Kusto cluster. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Cluster.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) .ReadHeaders(_response.Headers))); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation events + /// back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersGet_Validate(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Lists all Kusto clusters within a subscription. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersList(string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.Kusto/clusters" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Lists all Kusto clusters within a resource group. + /// The name of the resource group containing the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersListByResourceGroup(string resourceGroupName, string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Lists all Kusto clusters within a resource group. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersListByResourceGroupViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersListByResourceGroup_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersListByResourceGroup_Validate(string resourceGroupName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// + /// Returns a list of databases that are owned by this cluster and were followed by another cluster. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersListFollowerDatabases(string resourceGroupName, string clusterName, string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/listFollowerDatabases" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersListFollowerDatabases_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Returns a list of databases that are owned by this cluster and were followed by another cluster. + /// + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersListFollowerDatabasesViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/listFollowerDatabases$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/listFollowerDatabases'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/listFollowerDatabases" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersListFollowerDatabases_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersListFollowerDatabases_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.FollowerDatabaseListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersListFollowerDatabases_Validate(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Returns a list of language extensions that can run within KQL queries. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersListLanguageExtensions(string subscriptionId, string resourceGroupName, string clusterName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/listLanguageExtensions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersListLanguageExtensions_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Returns a list of language extensions that can run within KQL queries. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersListLanguageExtensionsViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/listLanguageExtensions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/listLanguageExtensions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/listLanguageExtensions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersListLanguageExtensions_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersListLanguageExtensions_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionsList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersListLanguageExtensions_Validate(string subscriptionId, string resourceGroupName, string clusterName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + } + } + + /// Gets the network endpoints of all outbound dependencies of a Kusto cluster + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersListOutboundNetworkDependenciesEndpoints(string subscriptionId, string resourceGroupName, string clusterName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/outboundNetworkDependenciesEndpoints" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersListOutboundNetworkDependenciesEndpoints_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Gets the network endpoints of all outbound dependencies of a Kusto cluster + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersListOutboundNetworkDependenciesEndpointsViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/outboundNetworkDependenciesEndpoints$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/outboundNetworkDependenciesEndpoints'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/outboundNetworkDependenciesEndpoints" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersListOutboundNetworkDependenciesEndpoints_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersListOutboundNetworkDependenciesEndpoints_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OutboundNetworkDependenciesEndpointListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual + /// call, but you will get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersListOutboundNetworkDependenciesEndpoints_Validate(string subscriptionId, string resourceGroupName, string clusterName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + } + } + + /// Lists eligible SKUs for Kusto resource provider. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersListSkus(string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.Kusto/skus" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersListSkus_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Returns the SKUs available for the provided resource. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersListSkusByResource(string resourceGroupName, string clusterName, string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/skus" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersListSkusByResource_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Returns the SKUs available for the provided resource. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersListSkusByResourceViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/skus$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/skus'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/skus" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersListSkusByResource_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersListSkusByResource_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ListResourceSkusResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersListSkusByResource_Validate(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Lists eligible SKUs for Kusto resource provider. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersListSkusViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/providers/Microsoft.Kusto/skus$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/skus'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/providers/Microsoft.Kusto/skus" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersListSkus_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersListSkus_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.SkuDescriptionList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersListSkus_Validate(string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Lists all Kusto clusters within a subscription. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersListViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/providers/Microsoft.Kusto/clusters$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/clusters'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/providers/Microsoft.Kusto/clusters" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersList_Validate(string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Remove a list of language extensions that can run within KQL queries. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The language extensions to remove. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersRemoveLanguageExtensions(string subscriptionId, string resourceGroupName, string clusterName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/removeLanguageExtensions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersRemoveLanguageExtensions_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Remove a list of language extensions that can run within KQL queries. + /// + /// The language extensions to remove. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersRemoveLanguageExtensionsViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/removeLanguageExtensions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/removeLanguageExtensions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/removeLanguageExtensions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersRemoveLanguageExtensions_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersRemoveLanguageExtensions_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The language extensions to remove. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersRemoveLanguageExtensions_Validate(string subscriptionId, string resourceGroupName, string clusterName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Starts a Kusto cluster. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersStart(string resourceGroupName, string clusterName, string subscriptionId, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/start" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersStart_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Starts a Kusto cluster. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersStartViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/start$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/start'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/start" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersStart_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersStart_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersStart_Validate(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Stops a Kusto cluster. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersStop(string resourceGroupName, string clusterName, string subscriptionId, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/stop" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersStop_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Stops a Kusto cluster. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersStopViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/stop$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/stop'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/stop" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersStop_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersStop_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersStop_Validate(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Update a Kusto cluster. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen + /// ETag value to prevent accidentally overwriting concurrent changes. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The Kusto cluster parameters supplied to the Update operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersUpdate(string resourceGroupName, string clusterName, string ifMatch, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdate body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // add headers parameters + if (null != ifMatch) + { + request.Headers.Add("If-Match",ifMatch); + } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Update a Kusto cluster. + /// + /// The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen + /// ETag value to prevent accidentally overwriting concurrent changes. + /// The Kusto cluster parameters supplied to the Update operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ClustersUpdateViaIdentity(global::System.String viaIdentity, string ifMatch, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdate body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // add headers parameters + if (null != ifMatch) + { + request.Headers.Add("If-Match",ifMatch); + } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ClustersUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Cluster.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) .ReadHeaders(_response.Headers))); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen + /// ETag value to prevent accidentally overwriting concurrent changes. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The Kusto cluster parameters supplied to the Update operation. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ClustersUpdate_Validate(string resourceGroupName, string clusterName, string ifMatch, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdate body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(ifMatch),ifMatch); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Checks that the data connection name is valid and is not already in use. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the data connection. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DataConnectionsCheckNameAvailability(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/checkNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DataConnectionsCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Checks that the data connection name is valid and is not already in use. + /// + /// The name of the data connection. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DataConnectionsCheckNameAvailabilityViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/checkNameAvailability$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/checkNameAvailability'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/checkNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DataConnectionsCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DataConnectionsCheckNameAvailability_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CheckNameResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the data connection. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DataConnectionsCheckNameAvailability_Validate(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Creates or updates a data connection. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the data connection. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The data connection parameters supplied to the CreateOrUpdate operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DataConnectionsCreateOrUpdate(string resourceGroupName, string clusterName, string databaseName, string dataConnectionName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/dataConnections/" + + global::System.Uri.EscapeDataString(dataConnectionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DataConnectionsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Creates or updates a data connection. + /// + /// The data connection parameters supplied to the CreateOrUpdate operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DataConnectionsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/dataConnections/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnections/{dataConnectionName}'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var dataConnectionName = _match.Groups["dataConnectionName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/dataConnections/" + + dataConnectionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DataConnectionsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DataConnectionsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) .ReadHeaders(_response.Headers))); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the data connection. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The data connection parameters supplied to the CreateOrUpdate operation. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DataConnectionsCreateOrUpdate_Validate(string resourceGroupName, string clusterName, string databaseName, string dataConnectionName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(dataConnectionName),dataConnectionName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Checks that the data connection parameters are valid. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The data connection parameters supplied to the CreateOrUpdate operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DataConnectionsDataConnectionValidation(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/dataConnectionValidation" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DataConnectionsDataConnectionValidation_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Checks that the data connection parameters are valid. + /// + /// The data connection parameters supplied to the CreateOrUpdate operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DataConnectionsDataConnectionValidationViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/dataConnectionValidation$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnectionValidation'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/dataConnectionValidation" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DataConnectionsDataConnectionValidation_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DataConnectionsDataConnectionValidation_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: location + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionValidationListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The data connection parameters supplied to the CreateOrUpdate operation. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DataConnectionsDataConnectionValidation_Validate(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Deletes the data connection with the given name. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the data connection. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DataConnectionsDelete(string resourceGroupName, string clusterName, string databaseName, string dataConnectionName, string subscriptionId, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/dataConnections/" + + global::System.Uri.EscapeDataString(dataConnectionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DataConnectionsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Deletes the data connection with the given name. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DataConnectionsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/dataConnections/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnections/{dataConnectionName}'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var dataConnectionName = _match.Groups["dataConnectionName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/dataConnections/" + + dataConnectionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DataConnectionsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DataConnectionsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + case global::System.Net.HttpStatusCode.NoContent: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the data connection. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DataConnectionsDelete_Validate(string resourceGroupName, string clusterName, string databaseName, string dataConnectionName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(dataConnectionName),dataConnectionName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Returns a data connection. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the data connection. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DataConnectionsGet(string resourceGroupName, string clusterName, string databaseName, string dataConnectionName, string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/dataConnections/" + + global::System.Uri.EscapeDataString(dataConnectionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DataConnectionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Returns a data connection. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DataConnectionsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/dataConnections/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnections/{dataConnectionName}'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var dataConnectionName = _match.Groups["dataConnectionName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/dataConnections/" + + dataConnectionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DataConnectionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DataConnectionsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) .ReadHeaders(_response.Headers))); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the data connection. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DataConnectionsGet_Validate(string resourceGroupName, string clusterName, string databaseName, string dataConnectionName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(dataConnectionName),dataConnectionName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Returns the list of data connections of the given Kusto database. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DataConnectionsListByDatabase(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/dataConnections" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DataConnectionsListByDatabase_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Returns the list of data connections of the given Kusto database. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DataConnectionsListByDatabaseViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/dataConnections$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnections'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/dataConnections" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DataConnectionsListByDatabase_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DataConnectionsListByDatabase_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DataConnectionsListByDatabase_Validate(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Updates a data connection. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the data connection. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The data connection parameters supplied to the Update operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DataConnectionsUpdate(string resourceGroupName, string clusterName, string databaseName, string dataConnectionName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/dataConnections/" + + global::System.Uri.EscapeDataString(dataConnectionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DataConnectionsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Updates a data connection. + /// + /// The data connection parameters supplied to the Update operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DataConnectionsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/dataConnections/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnections/{dataConnectionName}'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var dataConnectionName = _match.Groups["dataConnectionName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/dataConnections/" + + dataConnectionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DataConnectionsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DataConnectionsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) .ReadHeaders(_response.Headers))); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the data connection. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The data connection parameters supplied to the Update operation. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DataConnectionsUpdate_Validate(string resourceGroupName, string clusterName, string databaseName, string dataConnectionName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(dataConnectionName),dataConnectionName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// + /// Checks that the database principal assignment is valid and is not already in use. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsCheckNameAvailability(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/checkPrincipalAssignmentNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasePrincipalAssignmentsCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Checks that the database principal assignment is valid and is not already in use. + /// + /// + /// The name of the resource. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsCheckNameAvailabilityViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/checkPrincipalAssignmentNameAvailability$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/checkPrincipalAssignmentNameAvailability'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/checkPrincipalAssignmentNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasePrincipalAssignmentsCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsCheckNameAvailability_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CheckNameResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual + /// call, but you will get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsCheckNameAvailability_Validate(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Creates a Kusto cluster database principalAssignment. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the Kusto principalAssignment. + /// The Kusto principalAssignments parameters supplied for the operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsCreateOrUpdate(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, string principalAssignmentName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/principalAssignments/" + + global::System.Uri.EscapeDataString(principalAssignmentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasePrincipalAssignmentsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Creates a Kusto cluster database principalAssignment. + /// + /// The Kusto principalAssignments parameters supplied for the operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/principalAssignments/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/principalAssignments/{principalAssignmentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var principalAssignmentName = _match.Groups["principalAssignmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/principalAssignments/" + + principalAssignmentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasePrincipalAssignmentsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalAssignment.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the Kusto principalAssignment. + /// The Kusto principalAssignments parameters supplied for the operation. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, string principalAssignmentName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(principalAssignmentName),principalAssignmentName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Deletes a Kusto principalAssignment. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the Kusto principalAssignment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsDelete(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, string principalAssignmentName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/principalAssignments/" + + global::System.Uri.EscapeDataString(principalAssignmentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasePrincipalAssignmentsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Deletes a Kusto principalAssignment. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/principalAssignments/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/principalAssignments/{principalAssignmentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var principalAssignmentName = _match.Groups["principalAssignmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/principalAssignments/" + + principalAssignmentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasePrincipalAssignmentsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + case global::System.Net.HttpStatusCode.NoContent: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the Kusto principalAssignment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsDelete_Validate(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, string principalAssignmentName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(principalAssignmentName),principalAssignmentName); + } + } + + /// Gets a Kusto cluster database principalAssignment. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the Kusto principalAssignment. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsGet(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, string principalAssignmentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/principalAssignments/" + + global::System.Uri.EscapeDataString(principalAssignmentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasePrincipalAssignmentsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Gets a Kusto cluster database principalAssignment. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/principalAssignments/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/principalAssignments/{principalAssignmentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var principalAssignmentName = _match.Groups["principalAssignmentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/principalAssignments/" + + principalAssignmentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasePrincipalAssignmentsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalAssignment.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the Kusto principalAssignment. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsGet_Validate(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, string principalAssignmentName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(principalAssignmentName),principalAssignmentName); + } + } + + /// Lists all Kusto cluster database principalAssignments. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsList(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/principalAssignments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasePrincipalAssignmentsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Lists all Kusto cluster database principalAssignments. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsListViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/principalAssignments$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/principalAssignments'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/principalAssignments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasePrincipalAssignmentsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalAssignmentListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasePrincipalAssignmentsList_Validate(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + } + } + + /// Add Database principals permissions. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// List of database principals to add. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesAddPrincipals(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/addPrincipals" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesAddPrincipals_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Add Database principals permissions. + /// + /// List of database principals to add. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesAddPrincipalsViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/addPrincipals$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/addPrincipals'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/addPrincipals" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesAddPrincipals_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesAddPrincipals_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// List of database principals to add. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesAddPrincipals_Validate(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Checks that the databases resource name is valid and is not already in use. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesCheckNameAvailability(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/checkNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Checks that the databases resource name is valid and is not already in use. + /// + /// The name of the resource. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesCheckNameAvailabilityViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/checkNameAvailability$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/checkNameAvailability'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/checkNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesCheckNameAvailability_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CheckNameResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesCheckNameAvailability_Validate(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Creates or updates a database. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The database parameters supplied to the CreateOrUpdate operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesCreateOrUpdate(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Creates or updates a database. + /// + /// The database parameters supplied to the CreateOrUpdate operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Database.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) .ReadHeaders(_response.Headers))); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The database parameters supplied to the CreateOrUpdate operation. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesCreateOrUpdate_Validate(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Deletes the database with the given name. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesDelete(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Deletes the database with the given name. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + case global::System.Net.HttpStatusCode.NoContent: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesDelete_Validate(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Returns a database. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesGet(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Returns a database. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Database.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) .ReadHeaders(_response.Headers))); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesGet_Validate(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Returns the list of databases of the given Kusto cluster. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesListByCluster(string resourceGroupName, string clusterName, string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesListByCluster_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Returns the list of databases of the given Kusto cluster. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesListByClusterViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesListByCluster_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesListByCluster_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesListByCluster_Validate(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Returns a list of database principals of the given Kusto cluster and database. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesListPrincipals(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/listPrincipals" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesListPrincipals_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Returns a list of database principals of the given Kusto cluster and database. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesListPrincipalsViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/listPrincipals$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/listPrincipals'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/listPrincipals" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesListPrincipals_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesListPrincipals_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesListPrincipals_Validate(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Remove Database principals permissions. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// List of database principals to remove. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesRemovePrincipals(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/removePrincipals" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesRemovePrincipals_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Remove Database principals permissions. + /// + /// List of database principals to remove. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesRemovePrincipalsViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/removePrincipals$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/removePrincipals'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/removePrincipals" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesRemovePrincipals_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesRemovePrincipals_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// List of database principals to remove. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesRemovePrincipals_Validate(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Updates a database. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The database parameters supplied to the Update operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesUpdate(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Updates a database. + /// + /// The database parameters supplied to the Update operation. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DatabasesUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DatabasesUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Database.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) .ReadHeaders(_response.Headers))); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The database parameters supplied to the Update operation. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DatabasesUpdate_Validate(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// + /// Checks that the managed private endpoints resource name is valid and is not already in use. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedPrivateEndpointsCheckNameAvailability(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/managedPrivateEndpointsCheckNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedPrivateEndpointsCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Checks that the managed private endpoints resource name is valid and is not already in use. + /// + /// + /// The name of the resource. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedPrivateEndpointsCheckNameAvailabilityViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/managedPrivateEndpointsCheckNameAvailability$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpointsCheckNameAvailability'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/managedPrivateEndpointsCheckNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedPrivateEndpointsCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedPrivateEndpointsCheckNameAvailability_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CheckNameResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedPrivateEndpointsCheckNameAvailability_Validate(string resourceGroupName, string clusterName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Creates a managed private endpoint. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the managed private endpoint. + /// The managed private endpoint parameters. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedPrivateEndpointsCreateOrUpdate(string subscriptionId, string resourceGroupName, string clusterName, string managedPrivateEndpointName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/managedPrivateEndpoints/" + + global::System.Uri.EscapeDataString(managedPrivateEndpointName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedPrivateEndpointsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Creates a managed private endpoint. + /// + /// The managed private endpoint parameters. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedPrivateEndpointsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/managedPrivateEndpoints/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpoints/{managedPrivateEndpointName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var managedPrivateEndpointName = _match.Groups["managedPrivateEndpointName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/managedPrivateEndpoints/" + + managedPrivateEndpointName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedPrivateEndpointsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedPrivateEndpointsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpoint.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) .ReadHeaders(_response.Headers))); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the managed private endpoint. + /// The managed private endpoint parameters. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedPrivateEndpointsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string clusterName, string managedPrivateEndpointName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(managedPrivateEndpointName),managedPrivateEndpointName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Deletes a managed private endpoint. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the managed private endpoint. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedPrivateEndpointsDelete(string subscriptionId, string resourceGroupName, string clusterName, string managedPrivateEndpointName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/managedPrivateEndpoints/" + + global::System.Uri.EscapeDataString(managedPrivateEndpointName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedPrivateEndpointsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Deletes a managed private endpoint. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedPrivateEndpointsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/managedPrivateEndpoints/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpoints/{managedPrivateEndpointName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var managedPrivateEndpointName = _match.Groups["managedPrivateEndpointName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/managedPrivateEndpoints/" + + managedPrivateEndpointName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedPrivateEndpointsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedPrivateEndpointsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + case global::System.Net.HttpStatusCode.NoContent: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the managed private endpoint. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedPrivateEndpointsDelete_Validate(string subscriptionId, string resourceGroupName, string clusterName, string managedPrivateEndpointName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(managedPrivateEndpointName),managedPrivateEndpointName); + } + } + + /// Gets a managed private endpoint. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the managed private endpoint. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedPrivateEndpointsGet(string subscriptionId, string resourceGroupName, string clusterName, string managedPrivateEndpointName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/managedPrivateEndpoints/" + + global::System.Uri.EscapeDataString(managedPrivateEndpointName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedPrivateEndpointsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Gets a managed private endpoint. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedPrivateEndpointsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/managedPrivateEndpoints/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpoints/{managedPrivateEndpointName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var managedPrivateEndpointName = _match.Groups["managedPrivateEndpointName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/managedPrivateEndpoints/" + + managedPrivateEndpointName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedPrivateEndpointsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedPrivateEndpointsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpoint.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) .ReadHeaders(_response.Headers))); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the managed private endpoint. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedPrivateEndpointsGet_Validate(string subscriptionId, string resourceGroupName, string clusterName, string managedPrivateEndpointName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(managedPrivateEndpointName),managedPrivateEndpointName); + } + } + + /// Returns the list of managed private endpoints. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedPrivateEndpointsList(string subscriptionId, string resourceGroupName, string clusterName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/managedPrivateEndpoints" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedPrivateEndpointsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Returns the list of managed private endpoints. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedPrivateEndpointsListViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/managedPrivateEndpoints$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpoints'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/managedPrivateEndpoints" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedPrivateEndpointsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedPrivateEndpointsList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpointListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedPrivateEndpointsList_Validate(string subscriptionId, string resourceGroupName, string clusterName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + } + } + + /// Updates a managed private endpoint. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the managed private endpoint. + /// The managed private endpoint parameters. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedPrivateEndpointsUpdate(string subscriptionId, string resourceGroupName, string clusterName, string managedPrivateEndpointName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/managedPrivateEndpoints/" + + global::System.Uri.EscapeDataString(managedPrivateEndpointName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedPrivateEndpointsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Updates a managed private endpoint. + /// + /// The managed private endpoint parameters. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ManagedPrivateEndpointsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/managedPrivateEndpoints/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpoints/{managedPrivateEndpointName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var managedPrivateEndpointName = _match.Groups["managedPrivateEndpointName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/managedPrivateEndpoints/" + + managedPrivateEndpointName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ManagedPrivateEndpointsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedPrivateEndpointsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpoint.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) .ReadHeaders(_response.Headers))); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the managed private endpoint. + /// The managed private endpoint parameters. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ManagedPrivateEndpointsUpdate_Validate(string subscriptionId, string resourceGroupName, string clusterName, string managedPrivateEndpointName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(managedPrivateEndpointName),managedPrivateEndpointName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Lists available operations for the Microsoft.Kusto provider. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task OperationsList(global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.Kusto/operations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.OperationsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Lists available operations for the Microsoft.Kusto provider. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task OperationsListViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/providers/Microsoft.Kusto/operations$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/providers/Microsoft.Kusto/operations'"); + } + + // replace URI parameters with values from identity + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.Kusto/operations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.OperationsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task OperationsList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task OperationsList_Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + + } + } + + /// Returns operation results. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// Azure location (region) name. + /// The Guid of the operation ID + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task OperationsResultsGet(string subscriptionId, string location, string operationId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.Kusto/locations/" + + global::System.Uri.EscapeDataString(location) + + "/operationResults/" + + global::System.Uri.EscapeDataString(operationId) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.OperationsResultsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Returns operation results. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task OperationsResultsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/providers/Microsoft.Kusto/locations/(?[^/]+)/operationResults/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/locations/{location}/operationResults/{operationId}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var location = _match.Groups["location"].Value; + var operationId = _match.Groups["operationId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/providers/Microsoft.Kusto/locations/" + + location + + "/operationResults/" + + operationId + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.OperationsResultsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task OperationsResultsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// Azure location (region) name. + /// The Guid of the operation ID + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task OperationsResultsGet_Validate(string subscriptionId, string location, string operationId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(location),location); + await eventListener.AssertNotNull(nameof(operationId),operationId); + } + } + + /// Returns operation results. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// Azure location (region) name. + /// The Guid of the operation ID + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 202 (Accepted). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task OperationsResultsLocationGet(string subscriptionId, string location, string operationId, global::System.Func onOk, global::System.Func onAccepted, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.Kusto/locations/" + + global::System.Uri.EscapeDataString(location) + + "/operationResults/" + + global::System.Uri.EscapeDataString(operationId) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.OperationsResultsLocationGet_Call(request,onOk,onAccepted,onDefault,eventListener,sender); + } + } + + /// Returns operation results. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 202 (Accepted). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task OperationsResultsLocationGetViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onAccepted, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/providers/Microsoft.Kusto/locations/(?[^/]+)/operationResults/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/locations/{location}/operationResults/{operationId}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var location = _match.Groups["location"].Value; + var operationId = _match.Groups["operationId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/providers/Microsoft.Kusto/locations/" + + location + + "/operationResults/" + + operationId + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.OperationsResultsLocationGet_Call(request,onOk,onAccepted,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 202 (Accepted). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task OperationsResultsLocationGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onAccepted, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + case global::System.Net.HttpStatusCode.Accepted: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onAccepted(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// Azure location (region) name. + /// The Guid of the operation ID + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task OperationsResultsLocationGet_Validate(string subscriptionId, string location, string operationId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(location),location); + await eventListener.AssertNotNull(nameof(operationId),operationId); + } + } + + /// Approve or reject a private endpoint connection with a given name. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the private endpoint connection. + /// A private endpoint connection + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsCreateOrUpdate(string subscriptionId, string resourceGroupName, string clusterName, string privateEndpointConnectionName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/privateEndpointConnections/" + + global::System.Uri.EscapeDataString(privateEndpointConnectionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Approve or reject a private endpoint connection with a given name. + /// + /// A private endpoint connection + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/privateEndpointConnections/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/privateEndpointConnections/{privateEndpointConnectionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var privateEndpointConnectionName = _match.Groups["privateEndpointConnectionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/privateEndpointConnections/" + + privateEndpointConnectionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the private endpoint connection. + /// A private endpoint connection + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string clusterName, string privateEndpointConnectionName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(privateEndpointConnectionName),privateEndpointConnectionName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Deletes a private endpoint connection with a given name. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the private endpoint connection. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsDelete(string subscriptionId, string resourceGroupName, string clusterName, string privateEndpointConnectionName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/privateEndpointConnections/" + + global::System.Uri.EscapeDataString(privateEndpointConnectionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Deletes a private endpoint connection with a given name. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/privateEndpointConnections/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/privateEndpointConnections/{privateEndpointConnectionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var privateEndpointConnectionName = _match.Groups["privateEndpointConnectionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/privateEndpointConnections/" + + privateEndpointConnectionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + case global::System.Net.HttpStatusCode.NoContent: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the private endpoint connection. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsDelete_Validate(string subscriptionId, string resourceGroupName, string clusterName, string privateEndpointConnectionName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(privateEndpointConnectionName),privateEndpointConnectionName); + } + } + + /// Gets a private endpoint connection. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the private endpoint connection. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsGet(string subscriptionId, string resourceGroupName, string clusterName, string privateEndpointConnectionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/privateEndpointConnections/" + + global::System.Uri.EscapeDataString(privateEndpointConnectionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Gets a private endpoint connection. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/privateEndpointConnections/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/privateEndpointConnections/{privateEndpointConnectionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var privateEndpointConnectionName = _match.Groups["privateEndpointConnectionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/privateEndpointConnections/" + + privateEndpointConnectionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the private endpoint connection. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsGet_Validate(string subscriptionId, string resourceGroupName, string clusterName, string privateEndpointConnectionName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(privateEndpointConnectionName),privateEndpointConnectionName); + } + } + + /// Returns the list of private endpoint connections. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsList(string subscriptionId, string resourceGroupName, string clusterName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/privateEndpointConnections" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Returns the list of private endpoint connections. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsListViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/privateEndpointConnections$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/privateEndpointConnections'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/privateEndpointConnections" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnectionListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsList_Validate(string subscriptionId, string resourceGroupName, string clusterName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + } + } + + /// Gets a private link resource. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the private link resource. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateLinkResourcesGet(string subscriptionId, string resourceGroupName, string clusterName, string privateLinkResourceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/privateLinkResources/" + + global::System.Uri.EscapeDataString(privateLinkResourceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateLinkResourcesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Gets a private link resource. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateLinkResourcesGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/privateLinkResources/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/privateLinkResources/{privateLinkResourceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var privateLinkResourceName = _match.Groups["privateLinkResourceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/privateLinkResources/" + + privateLinkResourceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateLinkResourcesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateLinkResourcesGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the private link resource. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateLinkResourcesGet_Validate(string subscriptionId, string resourceGroupName, string clusterName, string privateLinkResourceName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(privateLinkResourceName),privateLinkResourceName); + } + } + + /// Returns the list of private link resources. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateLinkResourcesList(string subscriptionId, string resourceGroupName, string clusterName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/privateLinkResources" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateLinkResourcesList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Returns the list of private link resources. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateLinkResourcesListViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/privateLinkResources$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/privateLinkResources'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/privateLinkResources" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateLinkResourcesList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateLinkResourcesList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkResourceListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateLinkResourcesList_Validate(string subscriptionId, string resourceGroupName, string clusterName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + } + } + + /// Checks that the script name is valid and is not already in use. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the script. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScriptsCheckNameAvailability(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/scriptsCheckNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScriptsCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Checks that the script name is valid and is not already in use. + /// + /// The name of the script. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScriptsCheckNameAvailabilityViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/scriptsCheckNameAvailability$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scriptsCheckNameAvailability'"); + } + + // replace URI parameters with values from identity + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var subscriptionId = _match.Groups["subscriptionId"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/scriptsCheckNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScriptsCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScriptsCheckNameAvailability_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CheckNameResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the script. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScriptsCheckNameAvailability_Validate(string resourceGroupName, string clusterName, string databaseName, string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Creates a Kusto database script. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the Kusto database script. + /// The Kusto Script parameters contains the KQL to run. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScriptsCreateOrUpdate(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, string scriptName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/scripts/" + + global::System.Uri.EscapeDataString(scriptName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScriptsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Creates a Kusto database script. + /// + /// The Kusto Script parameters contains the KQL to run. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScriptsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/scripts/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scripts/{scriptName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var scriptName = _match.Groups["scriptName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/scripts/" + + scriptName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScriptsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScriptsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Script.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) .ReadHeaders(_response.Headers))); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the Kusto database script. + /// The Kusto Script parameters contains the KQL to run. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScriptsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, string scriptName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(scriptName),scriptName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Deletes a Kusto principalAssignment. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the Kusto database script. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScriptsDelete(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, string scriptName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/scripts/" + + global::System.Uri.EscapeDataString(scriptName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScriptsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Deletes a Kusto principalAssignment. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScriptsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/scripts/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scripts/{scriptName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var scriptName = _match.Groups["scriptName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/scripts/" + + scriptName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScriptsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScriptsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + case global::System.Net.HttpStatusCode.NoContent: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the Kusto database script. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScriptsDelete_Validate(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, string scriptName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(scriptName),scriptName); + } + } + + /// Gets a Kusto cluster database script. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the Kusto database script. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScriptsGet(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, string scriptName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/scripts/" + + global::System.Uri.EscapeDataString(scriptName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScriptsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Gets a Kusto cluster database script. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScriptsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/scripts/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scripts/{scriptName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var scriptName = _match.Groups["scriptName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/scripts/" + + scriptName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScriptsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScriptsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Script.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) .ReadHeaders(_response.Headers))); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation events + /// back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the Kusto database script. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScriptsGet_Validate(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, string scriptName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(scriptName),scriptName); + } + } + + /// Returns the list of database scripts for given database. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScriptsListByDatabase(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/scripts" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScriptsListByDatabase_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Returns the list of database scripts for given database. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScriptsListByDatabaseViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/scripts$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scripts'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/scripts" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScriptsListByDatabase_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScriptsListByDatabase_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ScriptListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScriptsListByDatabase_Validate(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + } + } + + /// Updates a database script. + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the Kusto database script. + /// The Kusto Script parameters contains to the KQL to run. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScriptsUpdate(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, string scriptName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.Kusto/clusters/" + + global::System.Uri.EscapeDataString(clusterName) + + "/databases/" + + global::System.Uri.EscapeDataString(databaseName) + + "/scripts/" + + global::System.Uri.EscapeDataString(scriptName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScriptsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Updates a database script. + /// + /// The Kusto Script parameters contains to the KQL to run. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ScriptsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-02-01"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.Kusto/clusters/(?[^/]+)/databases/(?[^/]+)/scripts/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scripts/{scriptName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var clusterName = _match.Groups["clusterName"].Value; + var databaseName = _match.Groups["databaseName"].Value; + var scriptName = _match.Groups["scriptName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.Kusto/clusters/" + + clusterName + + "/databases/" + + databaseName + + "/scripts/" + + scriptName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ScriptsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScriptsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling, $"Delaying {delay} seconds before polling.", _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // start the delay timer (we'll await later...) + var waiting = global::System.Threading.Tasks.Task.Delay(delay * 1000, eventListener.Token ); + + // while we wait, let's grab the headers and get ready to poll. + if (!System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Azure-AsyncOperation"))) { + asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + } + if (!global::System.String.IsNullOrEmpty(_response.GetFirstHeader(@"Location"))) { + location = _response.GetFirstHeader(@"Location"); + } + var _uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? _originalUri : location : asyncOperation; + request = request.CloneAndDispose(new global::System.Uri(_uri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // and let's look at the current response body and see if we have some information we can give back to the listener + var content = await _response.Content.ReadAsStringAsync(); + await waiting; + + // check for cancellation + if( eventListener.Token.IsCancellationRequested ) { return; } + + // drop the old response + _response?.Dispose(); + + // make the polling call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + + // if we got back an OK, take a peek inside and see if it's done + if( _response.StatusCode == global::System.Net.HttpStatusCode.OK) + { + var error = false; + try { + if( Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + var state = json.Property("properties")?.PropertyT("provisioningState") ?? json.PropertyT("status"); + if( state is null ) + { + // the body doesn't contain any information that has the state of the LRO + // we're going to just get out, and let the consumer have the result + break; + } + + switch( state?.ToString()?.ToLower() ) + { + case "failed": + error = true; + break; + case "succeeded": + case "canceled": + // we're done polling. + break; + + default: + // need to keep polling! + _response.StatusCode = global::System.Net.HttpStatusCode.Created; + continue; + } + } + } catch { + // if we run into a problem peeking into the result, + // we really don't want to do anything special. + } + if (error) { + throw new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Script.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) .ReadHeaders(_response.Headers))); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group containing the Kusto cluster. + /// The name of the Kusto cluster. + /// The name of the database in the Kusto cluster. + /// The name of the Kusto database script. + /// The Kusto Script parameters contains to the KQL to run. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ScriptsUpdate_Validate(string subscriptionId, string resourceGroupName, string clusterName, string databaseName, string scriptName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript body, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(clusterName),clusterName); + await eventListener.AssertNotNull(nameof(databaseName),databaseName); + await eventListener.AssertNotNull(nameof(scriptName),scriptName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Any.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Any.PowerShell.cs new file mode 100644 index 000000000000..a794a73b9602 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Any.PowerShell.cs @@ -0,0 +1,134 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Any object + [System.ComponentModel.TypeConverter(typeof(AnyTypeConverter))] + public partial class Any + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Any(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Any(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Any(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Any(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Any object + [System.ComponentModel.TypeConverter(typeof(AnyTypeConverter))] + public partial interface IAny + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Any.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Any.TypeConverter.cs new file mode 100644 index 000000000000..f94ed8f23b06 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Any.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AnyTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Any.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Any.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Any.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Any.cs b/swaggerci/azure-kusto/generated/api/Models/Any.cs new file mode 100644 index 000000000000..7089751d10d4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Any.cs @@ -0,0 +1,34 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Any object + public partial class Any : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAnyInternal + { + + /// Creates an new instance. + public Any() + { + + } + } + /// Any object + public partial interface IAny : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + + } + /// Any object + internal partial interface IAnyInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Any.json.cs b/swaggerci/azure-kusto/generated/api/Models/Any.json.cs new file mode 100644 index 000000000000..dfee904efb59 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Any.json.cs @@ -0,0 +1,102 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Any object + public partial class Any + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal Any(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny. + /// + /// a to deserialize from. + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new Any(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api10/ProxyResource.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api10/ProxyResource.PowerShell.cs new file mode 100644 index 000000000000..5d40984fb279 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api10/ProxyResource.PowerShell.cs @@ -0,0 +1,160 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location + /// + [System.ComponentModel.TypeConverter(typeof(ProxyResourceTypeConverter))] + public partial class ProxyResource + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IProxyResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ProxyResource(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IProxyResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ProxyResource(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IProxyResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ProxyResource(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ProxyResource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location + [System.ComponentModel.TypeConverter(typeof(ProxyResourceTypeConverter))] + public partial interface IProxyResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api10/ProxyResource.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api10/ProxyResource.TypeConverter.cs new file mode 100644 index 000000000000..d5b8c0cd5d26 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api10/ProxyResource.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ProxyResourceTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IProxyResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IProxyResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ProxyResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ProxyResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ProxyResource.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api10/ProxyResource.cs b/swaggerci/azure-kusto/generated/api/Models/Api10/ProxyResource.cs new file mode 100644 index 000000000000..0235a1eac4eb --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api10/ProxyResource.cs @@ -0,0 +1,79 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location + /// + public partial class ProxyResource : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IProxyResource, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IProxyResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(); + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public ProxyResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location + public partial interface IProxyResource : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource + { + + } + /// The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location + internal partial interface IProxyResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api10/ProxyResource.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api10/ProxyResource.json.cs new file mode 100644 index 000000000000..f006c174c0e2 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api10/ProxyResource.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location + /// + public partial class ProxyResource + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IProxyResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IProxyResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IProxyResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ProxyResource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ProxyResource(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(json); + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api10/Resource.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api10/Resource.PowerShell.cs new file mode 100644 index 000000000000..9a0da61d0281 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api10/Resource.PowerShell.cs @@ -0,0 +1,160 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// Common fields that are returned in the response for all Azure Resource Manager resources + /// + [System.ComponentModel.TypeConverter(typeof(ResourceTypeConverter))] + public partial class Resource + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Resource(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Resource(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Resource(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Resource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Common fields that are returned in the response for all Azure Resource Manager resources + [System.ComponentModel.TypeConverter(typeof(ResourceTypeConverter))] + public partial interface IResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api10/Resource.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api10/Resource.TypeConverter.cs new file mode 100644 index 000000000000..1ea0b08e9bbe --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api10/Resource.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Resource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Resource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Resource.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api10/Resource.cs b/swaggerci/azure-kusto/generated/api/Models/Api10/Resource.cs new file mode 100644 index 000000000000..58dca4869683 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api10/Resource.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// Common fields that are returned in the response for all Azure Resource Manager resources + /// + public partial class Resource : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal + { + + /// Backing field for property. + private string _id; + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Id { get => this._id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => this._id; set { {_id = value;} } } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => this._type; set { {_type = value;} } } + + /// Backing field for property. + private string _name; + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private string _type; + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Type { get => this._type; } + + /// Creates an new instance. + public Resource() + { + + } + } + /// Common fields that are returned in the response for all Azure Resource Manager resources + public partial interface IResource : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; } + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The name of the resource", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The type of the resource. E.g. ""Microsoft.Compute/virtualMachines"" or ""Microsoft.Storage/storageAccounts""", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; } + + } + /// Common fields that are returned in the response for all Azure Resource Manager resources + internal partial interface IResourceInternal + + { + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + string Id { get; set; } + /// The name of the resource + string Name { get; set; } + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api10/Resource.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api10/Resource.json.cs new file mode 100644 index 000000000000..170358a04017 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api10/Resource.json.cs @@ -0,0 +1,119 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// Common fields that are returned in the response for all Azure Resource Manager resources + /// + public partial class Resource + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource. + /// + /// a to deserialize from. + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new Resource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal Resource(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_id = If( json?.PropertyT("id"), out var __jsonId) ? (string)__jsonId : (string)Id;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._id.ToString()) : null, "id" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResource.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResource.PowerShell.cs new file mode 100644 index 000000000000..b1e87fddecbe --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResource.PowerShell.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' + /// + [System.ComponentModel.TypeConverter(typeof(TrackedResourceTypeConverter))] + public partial class TrackedResource + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TrackedResource(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TrackedResource(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TrackedResource(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal TrackedResource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' + [System.ComponentModel.TypeConverter(typeof(TrackedResourceTypeConverter))] + public partial interface ITrackedResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResource.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResource.TypeConverter.cs new file mode 100644 index 000000000000..7c391f8111d9 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResource.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TrackedResourceTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TrackedResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TrackedResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TrackedResource.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResource.cs b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResource.cs new file mode 100644 index 000000000000..feccd72c463b --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResource.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' + /// + public partial class TrackedResource : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResource, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(); + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; } + + /// Backing field for property. + private string _location; + + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags _tag; + + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.TrackedResourceTags()); set => this._tag = value; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public TrackedResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' + public partial interface ITrackedResource : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource + { + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags Tag { get; set; } + + } + /// The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' + internal partial interface ITrackedResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal + { + /// The geo-location where the resource lives + string Location { get; set; } + /// Resource tags. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResource.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResource.json.cs new file mode 100644 index 000000000000..f7322eea3fa3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResource.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' + /// + public partial class TrackedResource + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new TrackedResource(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._tag.ToJson(null,serializationMode) : null, "tags" ,container.Add ); + AddIf( null != (((object)this._location)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._location.ToString()) : null, "location" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal TrackedResource(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(json); + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.TrackedResourceTags.FromJson(__jsonTags) : Tag;} + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.PowerShell.cs new file mode 100644 index 000000000000..11a3a0d2d66c --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.PowerShell.cs @@ -0,0 +1,138 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Resource tags. + [System.ComponentModel.TypeConverter(typeof(TrackedResourceTagsTypeConverter))] + public partial class TrackedResourceTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TrackedResourceTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TrackedResourceTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TrackedResourceTags(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + // this type is a dictionary; copy elements from source to here. + CopyFrom(content); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal TrackedResourceTags(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + // this type is a dictionary; copy elements from source to here. + CopyFrom(content); + AfterDeserializePSObject(content); + } + } + /// Resource tags. + [System.ComponentModel.TypeConverter(typeof(TrackedResourceTagsTypeConverter))] + public partial interface ITrackedResourceTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.TypeConverter.cs new file mode 100644 index 000000000000..f3755a7e9cde --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TrackedResourceTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TrackedResourceTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TrackedResourceTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TrackedResourceTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.cs b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.cs new file mode 100644 index 000000000000..f539324aeb6f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.cs @@ -0,0 +1,35 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Resource tags. + public partial class TrackedResourceTags : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTagsInternal + { + + /// Creates an new instance. + public TrackedResourceTags() + { + + } + } + /// Resource tags. + public partial interface ITrackedResourceTags : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray + { + + } + /// Resource tags. + internal partial interface ITrackedResourceTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.dictionary.cs b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.dictionary.cs new file mode 100644 index 000000000000..b17012883d49 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + public partial class TrackedResourceTags : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray.Values { get => __additionalProperties.Values; } + + public string this[global::System.String index] { get => __additionalProperties[index]; set => __additionalProperties[index] = value; } + + /// + /// + public void Add(global::System.String key, string value) => __additionalProperties.Add( key, value); + + public void Clear() => __additionalProperties.Clear(); + + /// + public bool ContainsKey(global::System.String key) => __additionalProperties.ContainsKey( key); + + /// + public void CopyFrom(global::System.Collections.IDictionary source) + { + if (null != source) + { + foreach( var property in Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.TypeConverterExtensions.GetFilteredProperties(source, new global::System.Collections.Generic.HashSet() { } ) ) + { + if ((null != property.Key && null != property.Value)) + { + this.__additionalProperties.Add(property.Key.ToString(), global::System.Management.Automation.LanguagePrimitives.ConvertTo( property.Value)); + } + } + } + } + + /// + public void CopyFrom(global::System.Management.Automation.PSObject source) + { + if (null != source) + { + foreach( var property in Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.TypeConverterExtensions.GetFilteredProperties(source, new global::System.Collections.Generic.HashSet() { } ) ) + { + if ((null != property.Key && null != property.Value)) + { + this.__additionalProperties.Add(property.Key.ToString(), global::System.Management.Automation.LanguagePrimitives.ConvertTo( property.Value)); + } + } + } + } + + /// + public bool Remove(global::System.String key) => __additionalProperties.Remove( key); + + /// + /// + public bool TryGetValue(global::System.String key, out string value) => __additionalProperties.TryGetValue( key, out value); + + /// + + public static implicit operator global::System.Collections.Generic.Dictionary(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.TrackedResourceTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.json.cs new file mode 100644 index 000000000000..26b1f7803781 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api10/TrackedResourceTags.json.cs @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Resource tags. + public partial class TrackedResourceTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new TrackedResourceTags(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + /// + internal TrackedResourceTags(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, global::System.Collections.Generic.HashSet exclusions = null) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20/SystemData.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20/SystemData.PowerShell.cs new file mode 100644 index 000000000000..a2e2f25d791c --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20/SystemData.PowerShell.cs @@ -0,0 +1,182 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Metadata pertaining to creation and last modification of the resource. + [System.ComponentModel.TypeConverter(typeof(SystemDataTypeConverter))] + public partial class SystemData + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SystemData(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SystemData(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SystemData(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).CreatedBy = (string) content.GetValueForProperty("CreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).CreatedBy, global::System.Convert.ToString); + } + if (content.Contains("CreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).CreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("CreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).CreatedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("CreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).CreatedAt = (global::System.DateTime?) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).CreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("LastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).LastModifiedBy = (string) content.GetValueForProperty("LastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).LastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("LastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).LastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("LastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).LastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("LastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).LastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("LastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).LastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SystemData(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).CreatedBy = (string) content.GetValueForProperty("CreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).CreatedBy, global::System.Convert.ToString); + } + if (content.Contains("CreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).CreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("CreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).CreatedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("CreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).CreatedAt = (global::System.DateTime?) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).CreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("LastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).LastModifiedBy = (string) content.GetValueForProperty("LastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).LastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("LastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).LastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("LastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).LastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("LastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).LastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("LastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)this).LastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Metadata pertaining to creation and last modification of the resource. + [System.ComponentModel.TypeConverter(typeof(SystemDataTypeConverter))] + public partial interface ISystemData + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20/SystemData.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20/SystemData.TypeConverter.cs new file mode 100644 index 000000000000..2d45bc20190d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20/SystemData.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SystemDataTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SystemData.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SystemData.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SystemData.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20/SystemData.cs b/swaggerci/azure-kusto/generated/api/Models/Api20/SystemData.cs new file mode 100644 index 000000000000..283637acfac3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20/SystemData.cs @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Metadata pertaining to creation and last modification of the resource. + public partial class SystemData : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal + { + + /// Backing field for property. + private global::System.DateTime? _createdAt; + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public global::System.DateTime? CreatedAt { get => this._createdAt; set => this._createdAt = value; } + + /// Backing field for property. + private string _createdBy; + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string CreatedBy { get => this._createdBy; set => this._createdBy = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? _createdByType; + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? CreatedByType { get => this._createdByType; set => this._createdByType = value; } + + /// Backing field for property. + private global::System.DateTime? _lastModifiedAt; + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public global::System.DateTime? LastModifiedAt { get => this._lastModifiedAt; set => this._lastModifiedAt = value; } + + /// Backing field for property. + private string _lastModifiedBy; + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string LastModifiedBy { get => this._lastModifiedBy; set => this._lastModifiedBy = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? _lastModifiedByType; + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? LastModifiedByType { get => this._lastModifiedByType; set => this._lastModifiedByType = value; } + + /// Creates an new instance. + public SystemData() + { + + } + } + /// Metadata pertaining to creation and last modification of the resource. + public partial interface ISystemData : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource creation (UTC).", + SerializedName = @"createdAt", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? CreatedAt { get; set; } + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity that created the resource.", + SerializedName = @"createdBy", + PossibleTypes = new [] { typeof(string) })] + string CreatedBy { get; set; } + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? CreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource last modification (UTC)", + SerializedName = @"lastModifiedAt", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? LastModifiedAt { get; set; } + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity that last modified the resource.", + SerializedName = @"lastModifiedBy", + PossibleTypes = new [] { typeof(string) })] + string LastModifiedBy { get; set; } + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that last modified the resource.", + SerializedName = @"lastModifiedByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? LastModifiedByType { get; set; } + + } + /// Metadata pertaining to creation and last modification of the resource. + internal partial interface ISystemDataInternal + + { + /// The timestamp of resource creation (UTC). + global::System.DateTime? CreatedAt { get; set; } + /// The identity that created the resource. + string CreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? CreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + global::System.DateTime? LastModifiedAt { get; set; } + /// The identity that last modified the resource. + string LastModifiedBy { get; set; } + /// The type of identity that last modified the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? LastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20/SystemData.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20/SystemData.json.cs new file mode 100644 index 000000000000..8877d183bea1 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20/SystemData.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Metadata pertaining to creation and last modification of the resource. + public partial class SystemData + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new SystemData(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal SystemData(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_createdBy = If( json?.PropertyT("createdBy"), out var __jsonCreatedBy) ? (string)__jsonCreatedBy : (string)CreatedBy;} + {_createdByType = If( json?.PropertyT("createdByType"), out var __jsonCreatedByType) ? (string)__jsonCreatedByType : (string)CreatedByType;} + {_createdAt = If( json?.PropertyT("createdAt"), out var __jsonCreatedAt) ? global::System.DateTime.TryParse((string)__jsonCreatedAt, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonCreatedAtValue) ? __jsonCreatedAtValue : CreatedAt : CreatedAt;} + {_lastModifiedBy = If( json?.PropertyT("lastModifiedBy"), out var __jsonLastModifiedBy) ? (string)__jsonLastModifiedBy : (string)LastModifiedBy;} + {_lastModifiedByType = If( json?.PropertyT("lastModifiedByType"), out var __jsonLastModifiedByType) ? (string)__jsonLastModifiedByType : (string)LastModifiedByType;} + {_lastModifiedAt = If( json?.PropertyT("lastModifiedAt"), out var __jsonLastModifiedAt) ? global::System.DateTime.TryParse((string)__jsonLastModifiedAt, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonLastModifiedAtValue) ? __jsonLastModifiedAtValue : LastModifiedAt : LastModifiedAt;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._createdBy)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._createdBy.ToString()) : null, "createdBy" ,container.Add ); + AddIf( null != (((object)this._createdByType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._createdByType.ToString()) : null, "createdByType" ,container.Add ); + AddIf( null != this._createdAt ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._createdAt?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "createdAt" ,container.Add ); + AddIf( null != (((object)this._lastModifiedBy)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._lastModifiedBy.ToString()) : null, "lastModifiedBy" ,container.Add ); + AddIf( null != (((object)this._lastModifiedByType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._lastModifiedByType.ToString()) : null, "lastModifiedByType" ,container.Add ); + AddIf( null != this._lastModifiedAt ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._lastModifiedAt?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "lastModifiedAt" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AcceptedAudiences.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AcceptedAudiences.PowerShell.cs new file mode 100644 index 000000000000..466e5caa9617 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AcceptedAudiences.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Represents an accepted audience trusted by the cluster. + [System.ComponentModel.TypeConverter(typeof(AcceptedAudiencesTypeConverter))] + public partial class AcceptedAudiences + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal AcceptedAudiences(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiencesInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiencesInternal)this).Value, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal AcceptedAudiences(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiencesInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiencesInternal)this).Value, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AcceptedAudiences(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AcceptedAudiences(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Represents an accepted audience trusted by the cluster. + [System.ComponentModel.TypeConverter(typeof(AcceptedAudiencesTypeConverter))] + public partial interface IAcceptedAudiences + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AcceptedAudiences.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AcceptedAudiences.TypeConverter.cs new file mode 100644 index 000000000000..479bcd51cc2f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AcceptedAudiences.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AcceptedAudiencesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AcceptedAudiences.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AcceptedAudiences.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AcceptedAudiences.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AcceptedAudiences.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AcceptedAudiences.cs new file mode 100644 index 000000000000..dfc4cfc077c3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AcceptedAudiences.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Represents an accepted audience trusted by the cluster. + public partial class AcceptedAudiences : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiencesInternal + { + + /// Backing field for property. + private string _value; + + /// GUID or valid URL representing an accepted audience. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public AcceptedAudiences() + { + + } + } + /// Represents an accepted audience trusted by the cluster. + public partial interface IAcceptedAudiences : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// GUID or valid URL representing an accepted audience. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"GUID or valid URL representing an accepted audience.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(string) })] + string Value { get; set; } + + } + /// Represents an accepted audience trusted by the cluster. + internal partial interface IAcceptedAudiencesInternal + + { + /// GUID or valid URL representing an accepted audience. + string Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AcceptedAudiences.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AcceptedAudiences.json.cs new file mode 100644 index 000000000000..7f1ac87fdb37 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AcceptedAudiences.json.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Represents an accepted audience trusted by the cluster. + public partial class AcceptedAudiences + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal AcceptedAudiences(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? (string)__jsonValue : (string)Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new AcceptedAudiences(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._value)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._value.ToString()) : null, "value" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfiguration.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfiguration.PowerShell.cs new file mode 100644 index 000000000000..73e57291bb78 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfiguration.PowerShell.cs @@ -0,0 +1,272 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing an attached database configuration. + [System.ComponentModel.TypeConverter(typeof(AttachedDatabaseConfigurationTypeConverter))] + public partial class AttachedDatabaseConfiguration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal AttachedDatabaseConfiguration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfigurationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("TableLevelSharingProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingProperty = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties) content.GetValueForProperty("TableLevelSharingProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingProperty, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TableLevelSharingPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("DatabaseName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).DatabaseName = (string) content.GetValueForProperty("DatabaseName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).DatabaseName, global::System.Convert.ToString); + } + if (content.Contains("ClusterResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).ClusterResourceId = (string) content.GetValueForProperty("ClusterResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).ClusterResourceId, global::System.Convert.ToString); + } + if (content.Contains("AttachedDatabaseName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).AttachedDatabaseName = (string[]) content.GetValueForProperty("AttachedDatabaseName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).AttachedDatabaseName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("DefaultPrincipalsModificationKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).DefaultPrincipalsModificationKind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind) content.GetValueForProperty("DefaultPrincipalsModificationKind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).DefaultPrincipalsModificationKind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind.CreateFrom); + } + if (content.Contains("TableLevelSharingPropertyTablesToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyTablesToInclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyTablesToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyTablesToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyTablesToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyTablesToExclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyTablesToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyTablesToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyExternalTablesToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyExternalTablesToInclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyExternalTablesToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyExternalTablesToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyExternalTablesToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyExternalTablesToExclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyExternalTablesToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyExternalTablesToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyMaterializedViewsToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyMaterializedViewsToInclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyMaterializedViewsToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyMaterializedViewsToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyMaterializedViewsToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyMaterializedViewsToExclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyMaterializedViewsToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyMaterializedViewsToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal AttachedDatabaseConfiguration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfigurationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("TableLevelSharingProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingProperty = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties) content.GetValueForProperty("TableLevelSharingProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingProperty, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TableLevelSharingPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("DatabaseName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).DatabaseName = (string) content.GetValueForProperty("DatabaseName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).DatabaseName, global::System.Convert.ToString); + } + if (content.Contains("ClusterResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).ClusterResourceId = (string) content.GetValueForProperty("ClusterResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).ClusterResourceId, global::System.Convert.ToString); + } + if (content.Contains("AttachedDatabaseName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).AttachedDatabaseName = (string[]) content.GetValueForProperty("AttachedDatabaseName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).AttachedDatabaseName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("DefaultPrincipalsModificationKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).DefaultPrincipalsModificationKind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind) content.GetValueForProperty("DefaultPrincipalsModificationKind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).DefaultPrincipalsModificationKind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind.CreateFrom); + } + if (content.Contains("TableLevelSharingPropertyTablesToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyTablesToInclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyTablesToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyTablesToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyTablesToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyTablesToExclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyTablesToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyTablesToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyExternalTablesToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyExternalTablesToInclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyExternalTablesToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyExternalTablesToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyExternalTablesToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyExternalTablesToExclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyExternalTablesToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyExternalTablesToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyMaterializedViewsToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyMaterializedViewsToInclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyMaterializedViewsToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyMaterializedViewsToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyMaterializedViewsToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyMaterializedViewsToExclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyMaterializedViewsToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal)this).TableLevelSharingPropertyMaterializedViewsToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AttachedDatabaseConfiguration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AttachedDatabaseConfiguration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing an attached database configuration. + [System.ComponentModel.TypeConverter(typeof(AttachedDatabaseConfigurationTypeConverter))] + public partial interface IAttachedDatabaseConfiguration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfiguration.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfiguration.TypeConverter.cs new file mode 100644 index 000000000000..c1c6dff906b1 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfiguration.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AttachedDatabaseConfigurationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AttachedDatabaseConfiguration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AttachedDatabaseConfiguration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AttachedDatabaseConfiguration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfiguration.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfiguration.cs new file mode 100644 index 000000000000..4d1524db378f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfiguration.cs @@ -0,0 +1,289 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing an attached database configuration. + public partial class AttachedDatabaseConfiguration : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(); + + /// + /// The list of databases from the clusterResourceId which are currently attached to the cluster. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] AttachedDatabaseName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).AttachedDatabaseName; } + + /// + /// The resource id of the cluster where the databases you would like to attach reside. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string ClusterResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).ClusterResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).ClusterResourceId = value ?? null; } + + /// + /// The name of the database which you would like to attach, use * if you want to follow all current and future databases. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string DatabaseName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).DatabaseName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).DatabaseName = value ?? null; } + + /// The default principals modification kind + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind? DefaultPrincipalsModificationKind { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).DefaultPrincipalsModificationKind; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).DefaultPrincipalsModificationKind = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind)""); } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; } + + /// Backing field for property. + private string _location; + + /// Resource location. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for AttachedDatabaseName + string[] Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal.AttachedDatabaseName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).AttachedDatabaseName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).AttachedDatabaseName = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfigurationProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for TableLevelSharingProperty + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationInternal.TableLevelSharingProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).TableLevelSharingProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).TableLevelSharingProperty = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationProperties _property; + + /// The properties of the attached database configuration. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfigurationProperties()); set => this._property = value; } + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).ProvisioningState; } + + /// List of external tables exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] TableLevelSharingPropertyExternalTablesToExclude { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).TableLevelSharingPropertyExternalTablesToExclude; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).TableLevelSharingPropertyExternalTablesToExclude = value ?? null /* arrayOf */; } + + /// List of external tables to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] TableLevelSharingPropertyExternalTablesToInclude { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).TableLevelSharingPropertyExternalTablesToInclude; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).TableLevelSharingPropertyExternalTablesToInclude = value ?? null /* arrayOf */; } + + /// List of materialized views exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] TableLevelSharingPropertyMaterializedViewsToExclude { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).TableLevelSharingPropertyMaterializedViewsToExclude; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).TableLevelSharingPropertyMaterializedViewsToExclude = value ?? null /* arrayOf */; } + + /// List of materialized views to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] TableLevelSharingPropertyMaterializedViewsToInclude { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).TableLevelSharingPropertyMaterializedViewsToInclude; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).TableLevelSharingPropertyMaterializedViewsToInclude = value ?? null /* arrayOf */; } + + /// List of tables to exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] TableLevelSharingPropertyTablesToExclude { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).TableLevelSharingPropertyTablesToExclude; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).TableLevelSharingPropertyTablesToExclude = value ?? null /* arrayOf */; } + + /// List of tables to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] TableLevelSharingPropertyTablesToInclude { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).TableLevelSharingPropertyTablesToInclude; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)Property).TableLevelSharingPropertyTablesToInclude = value ?? null /* arrayOf */; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public AttachedDatabaseConfiguration() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Class representing an attached database configuration. + public partial interface IAttachedDatabaseConfiguration : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource + { + /// + /// The list of databases from the clusterResourceId which are currently attached to the cluster. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The list of databases from the clusterResourceId which are currently attached to the cluster.", + SerializedName = @"attachedDatabaseNames", + PossibleTypes = new [] { typeof(string) })] + string[] AttachedDatabaseName { get; } + /// + /// The resource id of the cluster where the databases you would like to attach reside. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource id of the cluster where the databases you would like to attach reside.", + SerializedName = @"clusterResourceId", + PossibleTypes = new [] { typeof(string) })] + string ClusterResourceId { get; set; } + /// + /// The name of the database which you would like to attach, use * if you want to follow all current and future databases. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the database which you would like to attach, use * if you want to follow all current and future databases.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + string DatabaseName { get; set; } + /// The default principals modification kind + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default principals modification kind", + SerializedName = @"defaultPrincipalsModificationKind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind? DefaultPrincipalsModificationKind { get; set; } + /// Resource location. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// List of external tables exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of external tables exclude from the follower database", + SerializedName = @"externalTablesToExclude", + PossibleTypes = new [] { typeof(string) })] + string[] TableLevelSharingPropertyExternalTablesToExclude { get; set; } + /// List of external tables to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of external tables to include in the follower database", + SerializedName = @"externalTablesToInclude", + PossibleTypes = new [] { typeof(string) })] + string[] TableLevelSharingPropertyExternalTablesToInclude { get; set; } + /// List of materialized views exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of materialized views exclude from the follower database", + SerializedName = @"materializedViewsToExclude", + PossibleTypes = new [] { typeof(string) })] + string[] TableLevelSharingPropertyMaterializedViewsToExclude { get; set; } + /// List of materialized views to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of materialized views to include in the follower database", + SerializedName = @"materializedViewsToInclude", + PossibleTypes = new [] { typeof(string) })] + string[] TableLevelSharingPropertyMaterializedViewsToInclude { get; set; } + /// List of tables to exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of tables to exclude from the follower database", + SerializedName = @"tablesToExclude", + PossibleTypes = new [] { typeof(string) })] + string[] TableLevelSharingPropertyTablesToExclude { get; set; } + /// List of tables to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of tables to include in the follower database", + SerializedName = @"tablesToInclude", + PossibleTypes = new [] { typeof(string) })] + string[] TableLevelSharingPropertyTablesToInclude { get; set; } + + } + /// Class representing an attached database configuration. + internal partial interface IAttachedDatabaseConfigurationInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal + { + /// + /// The list of databases from the clusterResourceId which are currently attached to the cluster. + /// + string[] AttachedDatabaseName { get; set; } + /// + /// The resource id of the cluster where the databases you would like to attach reside. + /// + string ClusterResourceId { get; set; } + /// + /// The name of the database which you would like to attach, use * if you want to follow all current and future databases. + /// + string DatabaseName { get; set; } + /// The default principals modification kind + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind? DefaultPrincipalsModificationKind { get; set; } + /// Resource location. + string Location { get; set; } + /// The properties of the attached database configuration. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationProperties Property { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// Table level sharing specifications + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties TableLevelSharingProperty { get; set; } + /// List of external tables exclude from the follower database + string[] TableLevelSharingPropertyExternalTablesToExclude { get; set; } + /// List of external tables to include in the follower database + string[] TableLevelSharingPropertyExternalTablesToInclude { get; set; } + /// List of materialized views exclude from the follower database + string[] TableLevelSharingPropertyMaterializedViewsToExclude { get; set; } + /// List of materialized views to include in the follower database + string[] TableLevelSharingPropertyMaterializedViewsToInclude { get; set; } + /// List of tables to exclude from the follower database + string[] TableLevelSharingPropertyTablesToExclude { get; set; } + /// List of tables to include in the follower database + string[] TableLevelSharingPropertyTablesToInclude { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfiguration.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfiguration.json.cs new file mode 100644 index 000000000000..a576787cb9b6 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfiguration.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing an attached database configuration. + public partial class AttachedDatabaseConfiguration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal AttachedDatabaseConfiguration(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfigurationProperties.FromJson(__jsonProperties) : Property;} + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new AttachedDatabaseConfiguration(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != (((object)this._location)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._location.ToString()) : null, "location" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationListResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationListResult.PowerShell.cs new file mode 100644 index 000000000000..3d316ba87a76 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationListResult.PowerShell.cs @@ -0,0 +1,145 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The list attached database configurations operation response. + [System.ComponentModel.TypeConverter(typeof(AttachedDatabaseConfigurationListResultTypeConverter))] + public partial class AttachedDatabaseConfigurationListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal AttachedDatabaseConfigurationListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfigurationTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal AttachedDatabaseConfigurationListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfigurationTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AttachedDatabaseConfigurationListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AttachedDatabaseConfigurationListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The list attached database configurations operation response. + [System.ComponentModel.TypeConverter(typeof(AttachedDatabaseConfigurationListResultTypeConverter))] + public partial interface IAttachedDatabaseConfigurationListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationListResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationListResult.TypeConverter.cs new file mode 100644 index 000000000000..13c155bab57a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationListResult.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AttachedDatabaseConfigurationListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AttachedDatabaseConfigurationListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AttachedDatabaseConfigurationListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AttachedDatabaseConfigurationListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationListResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationListResult.cs new file mode 100644 index 000000000000..ed0d6a139625 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationListResult.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list attached database configurations operation response. + public partial class AttachedDatabaseConfigurationListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationListResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationListResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration[] _value; + + /// The list of attached database configurations. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public AttachedDatabaseConfigurationListResult() + { + + } + } + /// The list attached database configurations operation response. + public partial interface IAttachedDatabaseConfigurationListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The list of attached database configurations. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of attached database configurations.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration[] Value { get; set; } + + } + /// The list attached database configurations operation response. + internal partial interface IAttachedDatabaseConfigurationListResultInternal + + { + /// The list of attached database configurations. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationListResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationListResult.json.cs new file mode 100644 index 000000000000..0979bcce920a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationListResult.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list attached database configurations operation response. + public partial class AttachedDatabaseConfigurationListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal AttachedDatabaseConfigurationListResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfiguration.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new AttachedDatabaseConfigurationListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationProperties.PowerShell.cs new file mode 100644 index 000000000000..7dab9bff5f78 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationProperties.PowerShell.cs @@ -0,0 +1,235 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// Class representing the an attached database configuration properties of kind specific. + /// + [System.ComponentModel.TypeConverter(typeof(AttachedDatabaseConfigurationPropertiesTypeConverter))] + public partial class AttachedDatabaseConfigurationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal AttachedDatabaseConfigurationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("TableLevelSharingProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingProperty = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties) content.GetValueForProperty("TableLevelSharingProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingProperty, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TableLevelSharingPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("DatabaseName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).DatabaseName = (string) content.GetValueForProperty("DatabaseName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).DatabaseName, global::System.Convert.ToString); + } + if (content.Contains("ClusterResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).ClusterResourceId = (string) content.GetValueForProperty("ClusterResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).ClusterResourceId, global::System.Convert.ToString); + } + if (content.Contains("AttachedDatabaseName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).AttachedDatabaseName = (string[]) content.GetValueForProperty("AttachedDatabaseName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).AttachedDatabaseName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("DefaultPrincipalsModificationKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).DefaultPrincipalsModificationKind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind) content.GetValueForProperty("DefaultPrincipalsModificationKind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).DefaultPrincipalsModificationKind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind.CreateFrom); + } + if (content.Contains("TableLevelSharingPropertyTablesToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyTablesToInclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyTablesToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyTablesToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyTablesToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyTablesToExclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyTablesToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyTablesToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyExternalTablesToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyExternalTablesToInclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyExternalTablesToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyExternalTablesToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyExternalTablesToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyExternalTablesToExclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyExternalTablesToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyExternalTablesToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyMaterializedViewsToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyMaterializedViewsToInclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyMaterializedViewsToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyMaterializedViewsToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyMaterializedViewsToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyMaterializedViewsToExclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyMaterializedViewsToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyMaterializedViewsToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal AttachedDatabaseConfigurationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("TableLevelSharingProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingProperty = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties) content.GetValueForProperty("TableLevelSharingProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingProperty, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TableLevelSharingPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("DatabaseName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).DatabaseName = (string) content.GetValueForProperty("DatabaseName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).DatabaseName, global::System.Convert.ToString); + } + if (content.Contains("ClusterResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).ClusterResourceId = (string) content.GetValueForProperty("ClusterResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).ClusterResourceId, global::System.Convert.ToString); + } + if (content.Contains("AttachedDatabaseName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).AttachedDatabaseName = (string[]) content.GetValueForProperty("AttachedDatabaseName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).AttachedDatabaseName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("DefaultPrincipalsModificationKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).DefaultPrincipalsModificationKind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind) content.GetValueForProperty("DefaultPrincipalsModificationKind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).DefaultPrincipalsModificationKind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind.CreateFrom); + } + if (content.Contains("TableLevelSharingPropertyTablesToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyTablesToInclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyTablesToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyTablesToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyTablesToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyTablesToExclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyTablesToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyTablesToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyExternalTablesToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyExternalTablesToInclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyExternalTablesToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyExternalTablesToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyExternalTablesToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyExternalTablesToExclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyExternalTablesToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyExternalTablesToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyMaterializedViewsToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyMaterializedViewsToInclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyMaterializedViewsToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyMaterializedViewsToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TableLevelSharingPropertyMaterializedViewsToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyMaterializedViewsToExclude = (string[]) content.GetValueForProperty("TableLevelSharingPropertyMaterializedViewsToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal)this).TableLevelSharingPropertyMaterializedViewsToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AttachedDatabaseConfigurationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AttachedDatabaseConfigurationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing the an attached database configuration properties of kind specific. + [System.ComponentModel.TypeConverter(typeof(AttachedDatabaseConfigurationPropertiesTypeConverter))] + public partial interface IAttachedDatabaseConfigurationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationProperties.TypeConverter.cs new file mode 100644 index 000000000000..88f756acdb7a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationProperties.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AttachedDatabaseConfigurationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AttachedDatabaseConfigurationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AttachedDatabaseConfigurationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AttachedDatabaseConfigurationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationProperties.cs new file mode 100644 index 000000000000..5b887932c7ad --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationProperties.cs @@ -0,0 +1,241 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// Class representing the an attached database configuration properties of kind specific. + /// + public partial class AttachedDatabaseConfigurationProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal + { + + /// Backing field for property. + private string[] _attachedDatabaseName; + + /// + /// The list of databases from the clusterResourceId which are currently attached to the cluster. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string[] AttachedDatabaseName { get => this._attachedDatabaseName; } + + /// Backing field for property. + private string _clusterResourceId; + + /// + /// The resource id of the cluster where the databases you would like to attach reside. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ClusterResourceId { get => this._clusterResourceId; set => this._clusterResourceId = value; } + + /// Backing field for property. + private string _databaseName; + + /// + /// The name of the database which you would like to attach, use * if you want to follow all current and future databases. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind _defaultPrincipalsModificationKind; + + /// The default principals modification kind + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind DefaultPrincipalsModificationKind { get => this._defaultPrincipalsModificationKind; set => this._defaultPrincipalsModificationKind = value; } + + /// Internal Acessors for AttachedDatabaseName + string[] Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal.AttachedDatabaseName { get => this._attachedDatabaseName; set { {_attachedDatabaseName = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for TableLevelSharingProperty + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationPropertiesInternal.TableLevelSharingProperty { get => (this._tableLevelSharingProperty = this._tableLevelSharingProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TableLevelSharingProperties()); set { {_tableLevelSharingProperty = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? _provisioningState; + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties _tableLevelSharingProperty; + + /// Table level sharing specifications + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties TableLevelSharingProperty { get => (this._tableLevelSharingProperty = this._tableLevelSharingProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TableLevelSharingProperties()); set => this._tableLevelSharingProperty = value; } + + /// List of external tables exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] TableLevelSharingPropertyExternalTablesToExclude { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)TableLevelSharingProperty).ExternalTablesToExclude; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)TableLevelSharingProperty).ExternalTablesToExclude = value ?? null /* arrayOf */; } + + /// List of external tables to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] TableLevelSharingPropertyExternalTablesToInclude { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)TableLevelSharingProperty).ExternalTablesToInclude; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)TableLevelSharingProperty).ExternalTablesToInclude = value ?? null /* arrayOf */; } + + /// List of materialized views exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] TableLevelSharingPropertyMaterializedViewsToExclude { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)TableLevelSharingProperty).MaterializedViewsToExclude; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)TableLevelSharingProperty).MaterializedViewsToExclude = value ?? null /* arrayOf */; } + + /// List of materialized views to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] TableLevelSharingPropertyMaterializedViewsToInclude { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)TableLevelSharingProperty).MaterializedViewsToInclude; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)TableLevelSharingProperty).MaterializedViewsToInclude = value ?? null /* arrayOf */; } + + /// List of tables to exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] TableLevelSharingPropertyTablesToExclude { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)TableLevelSharingProperty).TablesToExclude; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)TableLevelSharingProperty).TablesToExclude = value ?? null /* arrayOf */; } + + /// List of tables to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] TableLevelSharingPropertyTablesToInclude { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)TableLevelSharingProperty).TablesToInclude; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)TableLevelSharingProperty).TablesToInclude = value ?? null /* arrayOf */; } + + /// Creates an new instance. + public AttachedDatabaseConfigurationProperties() + { + + } + } + /// Class representing the an attached database configuration properties of kind specific. + public partial interface IAttachedDatabaseConfigurationProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// + /// The list of databases from the clusterResourceId which are currently attached to the cluster. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The list of databases from the clusterResourceId which are currently attached to the cluster.", + SerializedName = @"attachedDatabaseNames", + PossibleTypes = new [] { typeof(string) })] + string[] AttachedDatabaseName { get; } + /// + /// The resource id of the cluster where the databases you would like to attach reside. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The resource id of the cluster where the databases you would like to attach reside.", + SerializedName = @"clusterResourceId", + PossibleTypes = new [] { typeof(string) })] + string ClusterResourceId { get; set; } + /// + /// The name of the database which you would like to attach, use * if you want to follow all current and future databases. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database which you would like to attach, use * if you want to follow all current and future databases.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + string DatabaseName { get; set; } + /// The default principals modification kind + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The default principals modification kind", + SerializedName = @"defaultPrincipalsModificationKind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind DefaultPrincipalsModificationKind { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// List of external tables exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of external tables exclude from the follower database", + SerializedName = @"externalTablesToExclude", + PossibleTypes = new [] { typeof(string) })] + string[] TableLevelSharingPropertyExternalTablesToExclude { get; set; } + /// List of external tables to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of external tables to include in the follower database", + SerializedName = @"externalTablesToInclude", + PossibleTypes = new [] { typeof(string) })] + string[] TableLevelSharingPropertyExternalTablesToInclude { get; set; } + /// List of materialized views exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of materialized views exclude from the follower database", + SerializedName = @"materializedViewsToExclude", + PossibleTypes = new [] { typeof(string) })] + string[] TableLevelSharingPropertyMaterializedViewsToExclude { get; set; } + /// List of materialized views to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of materialized views to include in the follower database", + SerializedName = @"materializedViewsToInclude", + PossibleTypes = new [] { typeof(string) })] + string[] TableLevelSharingPropertyMaterializedViewsToInclude { get; set; } + /// List of tables to exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of tables to exclude from the follower database", + SerializedName = @"tablesToExclude", + PossibleTypes = new [] { typeof(string) })] + string[] TableLevelSharingPropertyTablesToExclude { get; set; } + /// List of tables to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of tables to include in the follower database", + SerializedName = @"tablesToInclude", + PossibleTypes = new [] { typeof(string) })] + string[] TableLevelSharingPropertyTablesToInclude { get; set; } + + } + /// Class representing the an attached database configuration properties of kind specific. + internal partial interface IAttachedDatabaseConfigurationPropertiesInternal + + { + /// + /// The list of databases from the clusterResourceId which are currently attached to the cluster. + /// + string[] AttachedDatabaseName { get; set; } + /// + /// The resource id of the cluster where the databases you would like to attach reside. + /// + string ClusterResourceId { get; set; } + /// + /// The name of the database which you would like to attach, use * if you want to follow all current and future databases. + /// + string DatabaseName { get; set; } + /// The default principals modification kind + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind DefaultPrincipalsModificationKind { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// Table level sharing specifications + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties TableLevelSharingProperty { get; set; } + /// List of external tables exclude from the follower database + string[] TableLevelSharingPropertyExternalTablesToExclude { get; set; } + /// List of external tables to include in the follower database + string[] TableLevelSharingPropertyExternalTablesToInclude { get; set; } + /// List of materialized views exclude from the follower database + string[] TableLevelSharingPropertyMaterializedViewsToExclude { get; set; } + /// List of materialized views to include in the follower database + string[] TableLevelSharingPropertyMaterializedViewsToInclude { get; set; } + /// List of tables to exclude from the follower database + string[] TableLevelSharingPropertyTablesToExclude { get; set; } + /// List of tables to include in the follower database + string[] TableLevelSharingPropertyTablesToInclude { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationProperties.json.cs new file mode 100644 index 000000000000..b63cd47c1e6a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationProperties.json.cs @@ -0,0 +1,134 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// Class representing the an attached database configuration properties of kind specific. + /// + public partial class AttachedDatabaseConfigurationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal AttachedDatabaseConfigurationProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_tableLevelSharingProperty = If( json?.PropertyT("tableLevelSharingProperties"), out var __jsonTableLevelSharingProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TableLevelSharingProperties.FromJson(__jsonTableLevelSharingProperties) : TableLevelSharingProperty;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_databaseName = If( json?.PropertyT("databaseName"), out var __jsonDatabaseName) ? (string)__jsonDatabaseName : (string)DatabaseName;} + {_clusterResourceId = If( json?.PropertyT("clusterResourceId"), out var __jsonClusterResourceId) ? (string)__jsonClusterResourceId : (string)ClusterResourceId;} + {_attachedDatabaseName = If( json?.PropertyT("attachedDatabaseNames"), out var __jsonAttachedDatabaseNames) ? If( __jsonAttachedDatabaseNames as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(string) (__u is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : AttachedDatabaseName;} + {_defaultPrincipalsModificationKind = If( json?.PropertyT("defaultPrincipalsModificationKind"), out var __jsonDefaultPrincipalsModificationKind) ? (string)__jsonDefaultPrincipalsModificationKind : (string)DefaultPrincipalsModificationKind;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new AttachedDatabaseConfigurationProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._tableLevelSharingProperty ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._tableLevelSharingProperty.ToJson(null,serializationMode) : null, "tableLevelSharingProperties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != (((object)this._databaseName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._databaseName.ToString()) : null, "databaseName" ,container.Add ); + AddIf( null != (((object)this._clusterResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._clusterResourceId.ToString()) : null, "clusterResourceId" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._attachedDatabaseName) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._attachedDatabaseName ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("attachedDatabaseNames",__w); + } + } + AddIf( null != (((object)this._defaultPrincipalsModificationKind)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._defaultPrincipalsModificationKind.ToString()) : null, "defaultPrincipalsModificationKind" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationsCheckNameRequest.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationsCheckNameRequest.PowerShell.cs new file mode 100644 index 000000000000..cf00128dd4be --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationsCheckNameRequest.PowerShell.cs @@ -0,0 +1,155 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// The result returned from a AttachedDatabaseConfigurations check name availability request. + /// + [System.ComponentModel.TypeConverter(typeof(AttachedDatabaseConfigurationsCheckNameRequestTypeConverter))] + public partial class AttachedDatabaseConfigurationsCheckNameRequest + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal AttachedDatabaseConfigurationsCheckNameRequest(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequestInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequestInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal AttachedDatabaseConfigurationsCheckNameRequest(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequestInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequestInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AttachedDatabaseConfigurationsCheckNameRequest(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AttachedDatabaseConfigurationsCheckNameRequest(content); + } + + /// + /// Creates a new instance of , deserializing the content from + /// a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The result returned from a AttachedDatabaseConfigurations check name availability request. + [System.ComponentModel.TypeConverter(typeof(AttachedDatabaseConfigurationsCheckNameRequestTypeConverter))] + public partial interface IAttachedDatabaseConfigurationsCheckNameRequest + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationsCheckNameRequest.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationsCheckNameRequest.TypeConverter.cs new file mode 100644 index 000000000000..2237197343f5 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationsCheckNameRequest.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AttachedDatabaseConfigurationsCheckNameRequestTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, + /// otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AttachedDatabaseConfigurationsCheckNameRequest.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AttachedDatabaseConfigurationsCheckNameRequest.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AttachedDatabaseConfigurationsCheckNameRequest.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationsCheckNameRequest.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationsCheckNameRequest.cs new file mode 100644 index 000000000000..7072b571d4c8 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationsCheckNameRequest.cs @@ -0,0 +1,81 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// The result returned from a AttachedDatabaseConfigurations check name availability request. + /// + public partial class AttachedDatabaseConfigurationsCheckNameRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequestInternal + { + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequestInternal.Type { get => this._type; set { {_type = value;} } } + + /// Backing field for property. + private string _name; + + /// Attached database resource name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _type= @"Microsoft.Kusto/clusters/attachedDatabaseConfigurations"; + + /// + /// The type of resource, for instance Microsoft.Kusto/clusters/attachedDatabaseConfigurations. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Type { get => this._type; } + + /// + /// Creates an new instance. + /// + public AttachedDatabaseConfigurationsCheckNameRequest() + { + + } + } + /// The result returned from a AttachedDatabaseConfigurations check name availability request. + public partial interface IAttachedDatabaseConfigurationsCheckNameRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Attached database resource name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Attached database resource name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// + /// The type of resource, for instance Microsoft.Kusto/clusters/attachedDatabaseConfigurations. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = true, + Description = @"The type of resource, for instance Microsoft.Kusto/clusters/attachedDatabaseConfigurations.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; } + + } + /// The result returned from a AttachedDatabaseConfigurations check name availability request. + internal partial interface IAttachedDatabaseConfigurationsCheckNameRequestInternal + + { + /// Attached database resource name. + string Name { get; set; } + /// + /// The type of resource, for instance Microsoft.Kusto/clusters/attachedDatabaseConfigurations. + /// + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationsCheckNameRequest.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationsCheckNameRequest.json.cs new file mode 100644 index 000000000000..4f642880f489 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AttachedDatabaseConfigurationsCheckNameRequest.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// The result returned from a AttachedDatabaseConfigurations check name availability request. + /// + public partial class AttachedDatabaseConfigurationsCheckNameRequest + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal AttachedDatabaseConfigurationsCheckNameRequest(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new AttachedDatabaseConfigurationsCheckNameRequest(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureCapacity.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureCapacity.PowerShell.cs new file mode 100644 index 000000000000..49848f770be3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureCapacity.PowerShell.cs @@ -0,0 +1,166 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Azure capacity definition. + [System.ComponentModel.TypeConverter(typeof(AzureCapacityTypeConverter))] + public partial class AzureCapacity + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal AzureCapacity(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ScaleType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)this).ScaleType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType) content.GetValueForProperty("ScaleType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)this).ScaleType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType.CreateFrom); + } + if (content.Contains("Minimum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)this).Minimum = (int) content.GetValueForProperty("Minimum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)this).Minimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Maximum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)this).Maximum = (int) content.GetValueForProperty("Maximum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)this).Maximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Default")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)this).Default = (int) content.GetValueForProperty("Default",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)this).Default, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal AzureCapacity(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ScaleType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)this).ScaleType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType) content.GetValueForProperty("ScaleType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)this).ScaleType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType.CreateFrom); + } + if (content.Contains("Minimum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)this).Minimum = (int) content.GetValueForProperty("Minimum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)this).Minimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Maximum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)this).Maximum = (int) content.GetValueForProperty("Maximum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)this).Maximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Default")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)this).Default = (int) content.GetValueForProperty("Default",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)this).Default, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacity DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AzureCapacity(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacity DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AzureCapacity(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacity FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Azure capacity definition. + [System.ComponentModel.TypeConverter(typeof(AzureCapacityTypeConverter))] + public partial interface IAzureCapacity + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureCapacity.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureCapacity.TypeConverter.cs new file mode 100644 index 000000000000..349d1996222f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureCapacity.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AzureCapacityTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacity ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacity).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AzureCapacity.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AzureCapacity.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AzureCapacity.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureCapacity.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureCapacity.cs new file mode 100644 index 000000000000..1219c67b41bd --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureCapacity.cs @@ -0,0 +1,102 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Azure capacity definition. + public partial class AzureCapacity : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacity, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal + { + + /// Backing field for property. + private int _default; + + /// The default capacity that would be used. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public int Default { get => this._default; set => this._default = value; } + + /// Backing field for property. + private int _maximum; + + /// Maximum allowed capacity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public int Maximum { get => this._maximum; set => this._maximum = value; } + + /// Backing field for property. + private int _minimum; + + /// Minimum allowed capacity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public int Minimum { get => this._minimum; set => this._minimum = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType _scaleType; + + /// Scale type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType ScaleType { get => this._scaleType; set => this._scaleType = value; } + + /// Creates an new instance. + public AzureCapacity() + { + + } + } + /// Azure capacity definition. + public partial interface IAzureCapacity : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The default capacity that would be used. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The default capacity that would be used.", + SerializedName = @"default", + PossibleTypes = new [] { typeof(int) })] + int Default { get; set; } + /// Maximum allowed capacity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Maximum allowed capacity.", + SerializedName = @"maximum", + PossibleTypes = new [] { typeof(int) })] + int Maximum { get; set; } + /// Minimum allowed capacity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Minimum allowed capacity.", + SerializedName = @"minimum", + PossibleTypes = new [] { typeof(int) })] + int Minimum { get; set; } + /// Scale type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Scale type.", + SerializedName = @"scaleType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType ScaleType { get; set; } + + } + /// Azure capacity definition. + internal partial interface IAzureCapacityInternal + + { + /// The default capacity that would be used. + int Default { get; set; } + /// Maximum allowed capacity. + int Maximum { get; set; } + /// Minimum allowed capacity. + int Minimum { get; set; } + /// Scale type. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType ScaleType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureCapacity.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureCapacity.json.cs new file mode 100644 index 000000000000..21a11b423f8d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureCapacity.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Azure capacity definition. + public partial class AzureCapacity + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal AzureCapacity(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_scaleType = If( json?.PropertyT("scaleType"), out var __jsonScaleType) ? (string)__jsonScaleType : (string)ScaleType;} + {_minimum = If( json?.PropertyT("minimum"), out var __jsonMinimum) ? (int)__jsonMinimum : Minimum;} + {_maximum = If( json?.PropertyT("maximum"), out var __jsonMaximum) ? (int)__jsonMaximum : Maximum;} + {_default = If( json?.PropertyT("default"), out var __jsonDefault) ? (int)__jsonDefault : Default;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacity. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacity. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacity FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new AzureCapacity(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._scaleType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._scaleType.ToString()) : null, "scaleType" ,container.Add ); + AddIf( (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNumber(this._minimum), "minimum" ,container.Add ); + AddIf( (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNumber(this._maximum), "maximum" ,container.Add ); + AddIf( (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNumber(this._default), "default" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureResourceSku.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureResourceSku.PowerShell.cs new file mode 100644 index 000000000000..3bcaa03735f6 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureResourceSku.PowerShell.cs @@ -0,0 +1,214 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Azure resource SKU definition. + [System.ComponentModel.TypeConverter(typeof(AzureResourceSkuTypeConverter))] + public partial class AzureResourceSku + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal AzureResourceSku(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureSkuTypeConverter.ConvertFrom); + } + if (content.Contains("Capacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).Capacity = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacity) content.GetValueForProperty("Capacity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).Capacity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureCapacityTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).ResourceType = (string) content.GetValueForProperty("ResourceType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).ResourceType, global::System.Convert.ToString); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).SkuName = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).SkuName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName.CreateFrom); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).SkuTier = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).SkuTier, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier.CreateFrom); + } + if (content.Contains("CapacityScaleType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).CapacityScaleType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType) content.GetValueForProperty("CapacityScaleType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).CapacityScaleType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType.CreateFrom); + } + if (content.Contains("CapacityMinimum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).CapacityMinimum = (int) content.GetValueForProperty("CapacityMinimum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).CapacityMinimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CapacityMaximum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).CapacityMaximum = (int) content.GetValueForProperty("CapacityMaximum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).CapacityMaximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CapacityDefault")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).CapacityDefault = (int) content.GetValueForProperty("CapacityDefault",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).CapacityDefault, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal AzureResourceSku(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureSkuTypeConverter.ConvertFrom); + } + if (content.Contains("Capacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).Capacity = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacity) content.GetValueForProperty("Capacity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).Capacity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureCapacityTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).ResourceType = (string) content.GetValueForProperty("ResourceType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).ResourceType, global::System.Convert.ToString); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).SkuName = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).SkuName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName.CreateFrom); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).SkuTier = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).SkuTier, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier.CreateFrom); + } + if (content.Contains("CapacityScaleType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).CapacityScaleType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType) content.GetValueForProperty("CapacityScaleType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).CapacityScaleType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType.CreateFrom); + } + if (content.Contains("CapacityMinimum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).CapacityMinimum = (int) content.GetValueForProperty("CapacityMinimum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).CapacityMinimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CapacityMaximum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).CapacityMaximum = (int) content.GetValueForProperty("CapacityMaximum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).CapacityMaximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CapacityDefault")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).CapacityDefault = (int) content.GetValueForProperty("CapacityDefault",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal)this).CapacityDefault, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AzureResourceSku(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AzureResourceSku(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Azure resource SKU definition. + [System.ComponentModel.TypeConverter(typeof(AzureResourceSkuTypeConverter))] + public partial interface IAzureResourceSku + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureResourceSku.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureResourceSku.TypeConverter.cs new file mode 100644 index 000000000000..c7c497ee123c --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureResourceSku.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AzureResourceSkuTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AzureResourceSku.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AzureResourceSku.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AzureResourceSku.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureResourceSku.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureResourceSku.cs new file mode 100644 index 000000000000..9dc02e14f87d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureResourceSku.cs @@ -0,0 +1,173 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Azure resource SKU definition. + public partial class AzureResourceSku : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacity _capacity; + + /// The number of instances of the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacity Capacity { get => (this._capacity = this._capacity ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureCapacity()); set => this._capacity = value; } + + /// The default capacity that would be used. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public int? CapacityDefault { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)Capacity).Default; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)Capacity).Default = value ?? default(int); } + + /// Maximum allowed capacity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public int? CapacityMaximum { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)Capacity).Maximum; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)Capacity).Maximum = value ?? default(int); } + + /// Minimum allowed capacity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public int? CapacityMinimum { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)Capacity).Minimum; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)Capacity).Minimum = value ?? default(int); } + + /// Scale type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType? CapacityScaleType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)Capacity).ScaleType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacityInternal)Capacity).ScaleType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType)""); } + + /// Internal Acessors for Capacity + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacity Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal.Capacity { get => (this._capacity = this._capacity ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureCapacity()); set { {_capacity = value;} } } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSkuInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureSku()); set { {_sku = value;} } } + + /// Backing field for property. + private string _resourceType; + + /// Resource Namespace and Type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ResourceType { get => this._resourceType; set => this._resourceType = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku _sku; + + /// The SKU details. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureSku()); set => this._sku = value; } + + /// The number of instances of the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public int? SkuCapacity { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Capacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Capacity = value ?? default(int); } + + /// SKU name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName? SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Name = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName)""); } + + /// SKU tier. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier? SkuTier { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Tier; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Tier = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier)""); } + + /// Creates an new instance. + public AzureResourceSku() + { + + } + } + /// Azure resource SKU definition. + public partial interface IAzureResourceSku : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The default capacity that would be used. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default capacity that would be used.", + SerializedName = @"default", + PossibleTypes = new [] { typeof(int) })] + int? CapacityDefault { get; set; } + /// Maximum allowed capacity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum allowed capacity.", + SerializedName = @"maximum", + PossibleTypes = new [] { typeof(int) })] + int? CapacityMaximum { get; set; } + /// Minimum allowed capacity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum allowed capacity.", + SerializedName = @"minimum", + PossibleTypes = new [] { typeof(int) })] + int? CapacityMinimum { get; set; } + /// Scale type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Scale type.", + SerializedName = @"scaleType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType? CapacityScaleType { get; set; } + /// Resource Namespace and Type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource Namespace and Type.", + SerializedName = @"resourceType", + PossibleTypes = new [] { typeof(string) })] + string ResourceType { get; set; } + /// The number of instances of the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of instances of the cluster.", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + int? SkuCapacity { get; set; } + /// SKU name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SKU name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName? SkuName { get; set; } + /// SKU tier. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SKU tier.", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier? SkuTier { get; set; } + + } + /// Azure resource SKU definition. + internal partial interface IAzureResourceSkuInternal + + { + /// The number of instances of the cluster. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureCapacity Capacity { get; set; } + /// The default capacity that would be used. + int? CapacityDefault { get; set; } + /// Maximum allowed capacity. + int? CapacityMaximum { get; set; } + /// Minimum allowed capacity. + int? CapacityMinimum { get; set; } + /// Scale type. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType? CapacityScaleType { get; set; } + /// Resource Namespace and Type. + string ResourceType { get; set; } + /// The SKU details. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku Sku { get; set; } + /// The number of instances of the cluster. + int? SkuCapacity { get; set; } + /// SKU name. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName? SkuName { get; set; } + /// SKU tier. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier? SkuTier { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureResourceSku.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureResourceSku.json.cs new file mode 100644 index 000000000000..881c45818569 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureResourceSku.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Azure resource SKU definition. + public partial class AzureResourceSku + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal AzureResourceSku(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureSku.FromJson(__jsonSku) : Sku;} + {_capacity = If( json?.PropertyT("capacity"), out var __jsonCapacity) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureCapacity.FromJson(__jsonCapacity) : Capacity;} + {_resourceType = If( json?.PropertyT("resourceType"), out var __jsonResourceType) ? (string)__jsonResourceType : (string)ResourceType;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new AzureResourceSku(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._sku ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._sku.ToJson(null,serializationMode) : null, "sku" ,container.Add ); + AddIf( null != this._capacity ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._capacity.ToJson(null,serializationMode) : null, "capacity" ,container.Add ); + AddIf( null != (((object)this._resourceType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._resourceType.ToString()) : null, "resourceType" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureSku.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureSku.PowerShell.cs new file mode 100644 index 000000000000..5c02f0696e51 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureSku.PowerShell.cs @@ -0,0 +1,158 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Azure SKU definition. + [System.ComponentModel.TypeConverter(typeof(AzureSkuTypeConverter))] + public partial class AzureSku + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal AzureSku(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)this).Name = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)this).Name, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName.CreateFrom); + } + if (content.Contains("Capacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)this).Capacity = (int?) content.GetValueForProperty("Capacity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)this).Capacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Tier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)this).Tier = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier) content.GetValueForProperty("Tier",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)this).Tier, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal AzureSku(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)this).Name = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)this).Name, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName.CreateFrom); + } + if (content.Contains("Capacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)this).Capacity = (int?) content.GetValueForProperty("Capacity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)this).Capacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Tier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)this).Tier = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier) content.GetValueForProperty("Tier",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)this).Tier, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier.CreateFrom); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AzureSku(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AzureSku(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Azure SKU definition. + [System.ComponentModel.TypeConverter(typeof(AzureSkuTypeConverter))] + public partial interface IAzureSku + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureSku.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureSku.TypeConverter.cs new file mode 100644 index 000000000000..42ffc43feec1 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureSku.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AzureSkuTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AzureSku.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AzureSku.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AzureSku.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureSku.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureSku.cs new file mode 100644 index 000000000000..6d55c8474827 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureSku.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Azure SKU definition. + public partial class AzureSku : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal + { + + /// Backing field for property. + private int? _capacity; + + /// The number of instances of the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public int? Capacity { get => this._capacity; set => this._capacity = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName _name; + + /// SKU name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier _tier; + + /// SKU tier. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier Tier { get => this._tier; set => this._tier = value; } + + /// Creates an new instance. + public AzureSku() + { + + } + } + /// Azure SKU definition. + public partial interface IAzureSku : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The number of instances of the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of instances of the cluster.", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + int? Capacity { get; set; } + /// SKU name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"SKU name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName Name { get; set; } + /// SKU tier. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"SKU tier.", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier Tier { get; set; } + + } + /// Azure SKU definition. + internal partial interface IAzureSkuInternal + + { + /// The number of instances of the cluster. + int? Capacity { get; set; } + /// SKU name. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName Name { get; set; } + /// SKU tier. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier Tier { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureSku.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureSku.json.cs new file mode 100644 index 000000000000..c06f35d23050 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/AzureSku.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Azure SKU definition. + public partial class AzureSku + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal AzureSku(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_capacity = If( json?.PropertyT("capacity"), out var __jsonCapacity) ? (int?)__jsonCapacity : Capacity;} + {_tier = If( json?.PropertyT("tier"), out var __jsonTier) ? (string)__jsonTier : (string)Tier;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new AzureSku(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != this._capacity ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNumber((int)this._capacity) : null, "capacity" ,container.Add ); + AddIf( null != (((object)this._tier)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._tier.ToString()) : null, "tier" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameRequest.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameRequest.PowerShell.cs new file mode 100644 index 000000000000..497985a8e544 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameRequest.PowerShell.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The result returned from a database check name availability request. + [System.ComponentModel.TypeConverter(typeof(CheckNameRequestTypeConverter))] + public partial class CheckNameRequest + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal CheckNameRequest(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequestInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequestInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal CheckNameRequest(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequestInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequestInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type.CreateFrom); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CheckNameRequest(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CheckNameRequest(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The result returned from a database check name availability request. + [System.ComponentModel.TypeConverter(typeof(CheckNameRequestTypeConverter))] + public partial interface ICheckNameRequest + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameRequest.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameRequest.TypeConverter.cs new file mode 100644 index 000000000000..44eb53c39d84 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameRequest.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CheckNameRequestTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CheckNameRequest.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CheckNameRequest.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CheckNameRequest.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameRequest.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameRequest.cs new file mode 100644 index 000000000000..b9087f73f7cc --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameRequest.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The result returned from a database check name availability request. + public partial class CheckNameRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequestInternal + { + + /// Backing field for property. + private string _name; + + /// Resource name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type _type; + + /// The type of resource, for instance Microsoft.Kusto/clusters/databases. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type Type { get => this._type; set => this._type = value; } + + /// Creates an new instance. + public CheckNameRequest() + { + + } + } + /// The result returned from a database check name availability request. + public partial interface ICheckNameRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Resource name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Resource name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// The type of resource, for instance Microsoft.Kusto/clusters/databases. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of resource, for instance Microsoft.Kusto/clusters/databases.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type Type { get; set; } + + } + /// The result returned from a database check name availability request. + internal partial interface ICheckNameRequestInternal + + { + /// Resource name. + string Name { get; set; } + /// The type of resource, for instance Microsoft.Kusto/clusters/databases. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameRequest.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameRequest.json.cs new file mode 100644 index 000000000000..33dd36fb701e --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameRequest.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The result returned from a database check name availability request. + public partial class CheckNameRequest + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal CheckNameRequest(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new CheckNameRequest(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameResult.PowerShell.cs new file mode 100644 index 000000000000..69f70218ce24 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameResult.PowerShell.cs @@ -0,0 +1,166 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The result returned from a check name availability request. + [System.ComponentModel.TypeConverter(typeof(CheckNameResultTypeConverter))] + public partial class CheckNameResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal CheckNameResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("NameAvailable")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResultInternal)this).NameAvailable = (bool?) content.GetValueForProperty("NameAvailable",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResultInternal)this).NameAvailable, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResultInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResultInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResultInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResultInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Reason")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResultInternal)this).Reason = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Reason?) content.GetValueForProperty("Reason",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResultInternal)this).Reason, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Reason.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal CheckNameResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("NameAvailable")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResultInternal)this).NameAvailable = (bool?) content.GetValueForProperty("NameAvailable",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResultInternal)this).NameAvailable, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResultInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResultInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResultInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResultInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Reason")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResultInternal)this).Reason = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Reason?) content.GetValueForProperty("Reason",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResultInternal)this).Reason, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Reason.CreateFrom); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CheckNameResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CheckNameResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The result returned from a check name availability request. + [System.ComponentModel.TypeConverter(typeof(CheckNameResultTypeConverter))] + public partial interface ICheckNameResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameResult.TypeConverter.cs new file mode 100644 index 000000000000..d71596c9c27d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CheckNameResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CheckNameResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CheckNameResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CheckNameResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameResult.cs new file mode 100644 index 000000000000..0a43c1079f7e --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameResult.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The result returned from a check name availability request. + public partial class CheckNameResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResultInternal + { + + /// Backing field for property. + private string _message; + + /// + /// Message indicating an unavailable name due to a conflict, or a description of the naming rules that are violated. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Message { get => this._message; set => this._message = value; } + + /// Backing field for property. + private string _name; + + /// The name that was checked. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private bool? _nameAvailable; + + /// Specifies a Boolean value that indicates if the name is available. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public bool? NameAvailable { get => this._nameAvailable; set => this._nameAvailable = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Reason? _reason; + + /// Message providing the reason why the given name is invalid. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Reason? Reason { get => this._reason; set => this._reason = value; } + + /// Creates an new instance. + public CheckNameResult() + { + + } + } + /// The result returned from a check name availability request. + public partial interface ICheckNameResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// + /// Message indicating an unavailable name due to a conflict, or a description of the naming rules that are violated. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Message indicating an unavailable name due to a conflict, or a description of the naming rules that are violated.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + /// The name that was checked. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name that was checked.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Specifies a Boolean value that indicates if the name is available. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies a Boolean value that indicates if the name is available.", + SerializedName = @"nameAvailable", + PossibleTypes = new [] { typeof(bool) })] + bool? NameAvailable { get; set; } + /// Message providing the reason why the given name is invalid. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Message providing the reason why the given name is invalid.", + SerializedName = @"reason", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Reason) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Reason? Reason { get; set; } + + } + /// The result returned from a check name availability request. + internal partial interface ICheckNameResultInternal + + { + /// + /// Message indicating an unavailable name due to a conflict, or a description of the naming rules that are violated. + /// + string Message { get; set; } + /// The name that was checked. + string Name { get; set; } + /// Specifies a Boolean value that indicates if the name is available. + bool? NameAvailable { get; set; } + /// Message providing the reason why the given name is invalid. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Reason? Reason { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameResult.json.cs new file mode 100644 index 000000000000..35581f816993 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CheckNameResult.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The result returned from a check name availability request. + public partial class CheckNameResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal CheckNameResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_nameAvailable = If( json?.PropertyT("nameAvailable"), out var __jsonNameAvailable) ? (bool?)__jsonNameAvailable : NameAvailable;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_message = If( json?.PropertyT("message"), out var __jsonMessage) ? (string)__jsonMessage : (string)Message;} + {_reason = If( json?.PropertyT("reason"), out var __jsonReason) ? (string)__jsonReason : (string)Reason;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new CheckNameResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._nameAvailable ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonBoolean((bool)this._nameAvailable) : null, "nameAvailable" ,container.Add ); + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._message)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._message.ToString()) : null, "message" ,container.Add ); + AddIf( null != (((object)this._reason)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._reason.ToString()) : null, "reason" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudError.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudError.PowerShell.cs new file mode 100644 index 000000000000..68562023c8e2 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudError.PowerShell.cs @@ -0,0 +1,174 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// An error response from Kusto. + [System.ComponentModel.TypeConverter(typeof(CloudErrorTypeConverter))] + public partial class CloudError + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal CloudError(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudErrorBodyTypeConverter.ConvertFrom); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudErrorBodyTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal CloudError(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudErrorBodyTypeConverter.ConvertFrom); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudErrorBodyTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudError DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CloudError(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudError DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CloudError(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudError FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// An error response from Kusto. + [System.ComponentModel.TypeConverter(typeof(CloudErrorTypeConverter))] + public partial interface ICloudError + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudError.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudError.TypeConverter.cs new file mode 100644 index 000000000000..2396b130002d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudError.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CloudErrorTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudError ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudError).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CloudError.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CloudError.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CloudError.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudError.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudError.cs new file mode 100644 index 000000000000..874581e8dc5d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudError.cs @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// An error response from Kusto. + public partial class CloudError : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudError, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal + { + + /// + /// An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string Code { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)Error).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)Error).Code = value ?? null; } + + /// A list of additional details about the error. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody[] Detail { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)Error).Detail; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)Error).Detail = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody _error; + + /// An error response from Kusto. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudErrorBody()); set => this._error = value; } + + /// + /// A message describing the error, intended to be suitable for displaying in a user interface. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string Message { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)Error).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)Error).Message = value ?? null; } + + /// Internal Acessors for Error + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorInternal.Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudErrorBody()); set { {_error = value;} } } + + /// + /// The target of the particular error. For example, the name of the property in error. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string Target { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)Error).Target; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)Error).Target = value ?? null; } + + /// Creates an new instance. + public CloudError() + { + + } + } + /// An error response from Kusto. + public partial interface ICloudError : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// + /// An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An identifier for the error. Codes are invariant and are intended to be consumed programmatically.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; set; } + /// A list of additional details about the error. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of additional details about the error.", + SerializedName = @"details", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody[] Detail { get; set; } + /// + /// A message describing the error, intended to be suitable for displaying in a user interface. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A message describing the error, intended to be suitable for displaying in a user interface.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + /// + /// The target of the particular error. For example, the name of the property in error. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The target of the particular error. For example, the name of the property in error.", + SerializedName = @"target", + PossibleTypes = new [] { typeof(string) })] + string Target { get; set; } + + } + /// An error response from Kusto. + internal partial interface ICloudErrorInternal + + { + /// + /// An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + /// + string Code { get; set; } + /// A list of additional details about the error. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody[] Detail { get; set; } + /// An error response from Kusto. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody Error { get; set; } + /// + /// A message describing the error, intended to be suitable for displaying in a user interface. + /// + string Message { get; set; } + /// + /// The target of the particular error. For example, the name of the property in error. + /// + string Target { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudError.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudError.json.cs new file mode 100644 index 000000000000..7e50a85a4867 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudError.json.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// An error response from Kusto. + public partial class CloudError + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal CloudError(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_error = If( json?.PropertyT("error"), out var __jsonError) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudErrorBody.FromJson(__jsonError) : Error;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudError. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudError. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudError FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new CloudError(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._error ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._error.ToJson(null,serializationMode) : null, "error" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudErrorBody.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudErrorBody.PowerShell.cs new file mode 100644 index 000000000000..1c60b89fddc9 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudErrorBody.PowerShell.cs @@ -0,0 +1,166 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// An error response from Kusto. + [System.ComponentModel.TypeConverter(typeof(CloudErrorBodyTypeConverter))] + public partial class CloudErrorBody + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal CloudErrorBody(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudErrorBodyTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal CloudErrorBody(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudErrorBodyTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CloudErrorBody(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CloudErrorBody(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// An error response from Kusto. + [System.ComponentModel.TypeConverter(typeof(CloudErrorBodyTypeConverter))] + public partial interface ICloudErrorBody + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudErrorBody.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudErrorBody.TypeConverter.cs new file mode 100644 index 000000000000..eb8de46d4777 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudErrorBody.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CloudErrorBodyTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CloudErrorBody.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CloudErrorBody.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CloudErrorBody.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudErrorBody.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudErrorBody.cs new file mode 100644 index 000000000000..729ff055afe1 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudErrorBody.cs @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// An error response from Kusto. + public partial class CloudErrorBody : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBodyInternal + { + + /// Backing field for property. + private string _code; + + /// + /// An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Code { get => this._code; set => this._code = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody[] _detail; + + /// A list of additional details about the error. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody[] Detail { get => this._detail; set => this._detail = value; } + + /// Backing field for property. + private string _message; + + /// + /// A message describing the error, intended to be suitable for displaying in a user interface. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Message { get => this._message; set => this._message = value; } + + /// Backing field for property. + private string _target; + + /// + /// The target of the particular error. For example, the name of the property in error. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Target { get => this._target; set => this._target = value; } + + /// Creates an new instance. + public CloudErrorBody() + { + + } + } + /// An error response from Kusto. + public partial interface ICloudErrorBody : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// + /// An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An identifier for the error. Codes are invariant and are intended to be consumed programmatically.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; set; } + /// A list of additional details about the error. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of additional details about the error.", + SerializedName = @"details", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody[] Detail { get; set; } + /// + /// A message describing the error, intended to be suitable for displaying in a user interface. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A message describing the error, intended to be suitable for displaying in a user interface.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + /// + /// The target of the particular error. For example, the name of the property in error. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The target of the particular error. For example, the name of the property in error.", + SerializedName = @"target", + PossibleTypes = new [] { typeof(string) })] + string Target { get; set; } + + } + /// An error response from Kusto. + internal partial interface ICloudErrorBodyInternal + + { + /// + /// An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + /// + string Code { get; set; } + /// A list of additional details about the error. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody[] Detail { get; set; } + /// + /// A message describing the error, intended to be suitable for displaying in a user interface. + /// + string Message { get; set; } + /// + /// The target of the particular error. For example, the name of the property in error. + /// + string Target { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudErrorBody.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudErrorBody.json.cs new file mode 100644 index 000000000000..24df7b5b57c8 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/CloudErrorBody.json.cs @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// An error response from Kusto. + public partial class CloudErrorBody + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal CloudErrorBody(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_code = If( json?.PropertyT("code"), out var __jsonCode) ? (string)__jsonCode : (string)Code;} + {_message = If( json?.PropertyT("message"), out var __jsonMessage) ? (string)__jsonMessage : (string)Message;} + {_target = If( json?.PropertyT("target"), out var __jsonTarget) ? (string)__jsonTarget : (string)Target;} + {_detail = If( json?.PropertyT("details"), out var __jsonDetails) ? If( __jsonDetails as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CloudErrorBody.FromJson(__u) )) ))() : null : Detail;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICloudErrorBody FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new CloudErrorBody(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._code)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._code.ToString()) : null, "code" ,container.Add ); + AddIf( null != (((object)this._message)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._message.ToString()) : null, "message" ,container.Add ); + AddIf( null != (((object)this._target)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._target.ToString()) : null, "target" ,container.Add ); + if (null != this._detail) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._detail ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("details",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Cluster.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Cluster.PowerShell.cs new file mode 100644 index 000000000000..a5e6460d6e98 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Cluster.PowerShell.cs @@ -0,0 +1,622 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing a Kusto cluster. + [System.ComponentModel.TypeConverter(typeof(ClusterTypeConverter))] + public partial class Cluster + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Cluster(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureSkuTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Zone")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Zone = (string[]) content.GetValueForProperty("Zone",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Zone, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Etag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Etag = (string) content.GetValueForProperty("Etag",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Etag, global::System.Convert.ToString); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType.CreateFrom); + } + if (content.Contains("OptimizedAutoscale")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscale = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale) content.GetValueForProperty("OptimizedAutoscale",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscale, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OptimizedAutoscaleTypeConverter.ConvertFrom); + } + if (content.Contains("State")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).State = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State?) content.GetValueForProperty("State",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).State, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("EngineType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EngineType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType?) content.GetValueForProperty("EngineType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EngineType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType.CreateFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SkuName = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SkuName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName.CreateFrom); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SkuTier = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SkuTier, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier.CreateFrom); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IdentityUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + if (content.Contains("VirtualNetworkConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualNetworkConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration) content.GetValueForProperty("VirtualNetworkConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualNetworkConfiguration, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.VirtualNetworkConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("KeyVaultProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultProperty = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties) content.GetValueForProperty("KeyVaultProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultProperty, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.KeyVaultPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("LanguageExtension")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).LanguageExtension = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList) content.GetValueForProperty("LanguageExtension",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).LanguageExtension, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionsListTypeConverter.ConvertFrom); + } + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Uri, global::System.Convert.ToString); + } + if (content.Contains("DataIngestionUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).DataIngestionUri = (string) content.GetValueForProperty("DataIngestionUri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).DataIngestionUri, global::System.Convert.ToString); + } + if (content.Contains("StateReason")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).StateReason = (string) content.GetValueForProperty("StateReason",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).StateReason, global::System.Convert.ToString); + } + if (content.Contains("TrustedExternalTenant")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).TrustedExternalTenant = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[]) content.GetValueForProperty("TrustedExternalTenant",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).TrustedExternalTenant, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TrustedExternalTenantTypeConverter.ConvertFrom)); + } + if (content.Contains("EnableDiskEncryption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnableDiskEncryption = (bool?) content.GetValueForProperty("EnableDiskEncryption",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnableDiskEncryption, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnableStreamingIngest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnableStreamingIngest = (bool?) content.GetValueForProperty("EnableStreamingIngest",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnableStreamingIngest, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnablePurge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnablePurge = (bool?) content.GetValueForProperty("EnablePurge",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnablePurge, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnableDoubleEncryption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnableDoubleEncryption = (bool?) content.GetValueForProperty("EnableDoubleEncryption",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnableDoubleEncryption, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("AllowedIPRangeList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).AllowedIPRangeList = (string[]) content.GetValueForProperty("AllowedIPRangeList",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).AllowedIPRangeList, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AcceptedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).AcceptedAudience = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[]) content.GetValueForProperty("AcceptedAudience",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).AcceptedAudience, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AcceptedAudiencesTypeConverter.ConvertFrom)); + } + if (content.Contains("EnableAutoStop")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnableAutoStop = (bool?) content.GetValueForProperty("EnableAutoStop",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnableAutoStop, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RestrictOutboundNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).RestrictOutboundNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag?) content.GetValueForProperty("RestrictOutboundNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).RestrictOutboundNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag.CreateFrom); + } + if (content.Contains("AllowedFqdnList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).AllowedFqdnList = (string[]) content.GetValueForProperty("AllowedFqdnList",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).AllowedFqdnList, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("PublicIPType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).PublicIPType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType?) content.GetValueForProperty("PublicIPType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).PublicIPType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType.CreateFrom); + } + if (content.Contains("VirtualClusterGraduationProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualClusterGraduationProperty = (string) content.GetValueForProperty("VirtualClusterGraduationProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualClusterGraduationProperty, global::System.Convert.ToString); + } + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("OptimizedAutoscaleVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscaleVersion = (int) content.GetValueForProperty("OptimizedAutoscaleVersion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscaleVersion, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("OptimizedAutoscaleMinimum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscaleMinimum = (int) content.GetValueForProperty("OptimizedAutoscaleMinimum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscaleMinimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("OptimizedAutoscaleMaximum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscaleMaximum = (int) content.GetValueForProperty("OptimizedAutoscaleMaximum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscaleMaximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("VirtualNetworkConfigurationSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualNetworkConfigurationSubnetId = (string) content.GetValueForProperty("VirtualNetworkConfigurationSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualNetworkConfigurationSubnetId, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultPropertyKeyName = (string) content.GetValueForProperty("KeyVaultPropertyKeyName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultPropertyKeyName, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultPropertyKeyVersion = (string) content.GetValueForProperty("KeyVaultPropertyKeyVersion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultPropertyKeyVersion, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyUserIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultPropertyUserIdentity = (string) content.GetValueForProperty("KeyVaultPropertyUserIdentity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultPropertyUserIdentity, global::System.Convert.ToString); + } + if (content.Contains("OptimizedAutoscaleIsEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscaleIsEnabled = (bool) content.GetValueForProperty("OptimizedAutoscaleIsEnabled",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscaleIsEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("VirtualNetworkConfigurationEnginePublicIPId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualNetworkConfigurationEnginePublicIPId = (string) content.GetValueForProperty("VirtualNetworkConfigurationEnginePublicIPId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualNetworkConfigurationEnginePublicIPId, global::System.Convert.ToString); + } + if (content.Contains("VirtualNetworkConfigurationDataManagementPublicIPId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualNetworkConfigurationDataManagementPublicIPId = (string) content.GetValueForProperty("VirtualNetworkConfigurationDataManagementPublicIPId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualNetworkConfigurationDataManagementPublicIPId, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyVaultUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultPropertyKeyVaultUri = (string) content.GetValueForProperty("KeyVaultPropertyKeyVaultUri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultPropertyKeyVaultUri, global::System.Convert.ToString); + } + if (content.Contains("LanguageExtensionValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).LanguageExtensionValue = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[]) content.GetValueForProperty("LanguageExtensionValue",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).LanguageExtensionValue, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Cluster(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureSkuTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Zone")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Zone = (string[]) content.GetValueForProperty("Zone",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Zone, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Etag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Etag = (string) content.GetValueForProperty("Etag",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Etag, global::System.Convert.ToString); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType.CreateFrom); + } + if (content.Contains("OptimizedAutoscale")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscale = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale) content.GetValueForProperty("OptimizedAutoscale",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscale, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OptimizedAutoscaleTypeConverter.ConvertFrom); + } + if (content.Contains("State")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).State = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State?) content.GetValueForProperty("State",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).State, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("EngineType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EngineType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType?) content.GetValueForProperty("EngineType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EngineType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType.CreateFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SkuName = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SkuName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName.CreateFrom); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SkuTier = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SkuTier, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier.CreateFrom); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IdentityUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + if (content.Contains("VirtualNetworkConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualNetworkConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration) content.GetValueForProperty("VirtualNetworkConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualNetworkConfiguration, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.VirtualNetworkConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("KeyVaultProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultProperty = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties) content.GetValueForProperty("KeyVaultProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultProperty, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.KeyVaultPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("LanguageExtension")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).LanguageExtension = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList) content.GetValueForProperty("LanguageExtension",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).LanguageExtension, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionsListTypeConverter.ConvertFrom); + } + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).Uri, global::System.Convert.ToString); + } + if (content.Contains("DataIngestionUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).DataIngestionUri = (string) content.GetValueForProperty("DataIngestionUri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).DataIngestionUri, global::System.Convert.ToString); + } + if (content.Contains("StateReason")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).StateReason = (string) content.GetValueForProperty("StateReason",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).StateReason, global::System.Convert.ToString); + } + if (content.Contains("TrustedExternalTenant")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).TrustedExternalTenant = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[]) content.GetValueForProperty("TrustedExternalTenant",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).TrustedExternalTenant, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TrustedExternalTenantTypeConverter.ConvertFrom)); + } + if (content.Contains("EnableDiskEncryption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnableDiskEncryption = (bool?) content.GetValueForProperty("EnableDiskEncryption",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnableDiskEncryption, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnableStreamingIngest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnableStreamingIngest = (bool?) content.GetValueForProperty("EnableStreamingIngest",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnableStreamingIngest, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnablePurge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnablePurge = (bool?) content.GetValueForProperty("EnablePurge",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnablePurge, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnableDoubleEncryption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnableDoubleEncryption = (bool?) content.GetValueForProperty("EnableDoubleEncryption",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnableDoubleEncryption, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("AllowedIPRangeList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).AllowedIPRangeList = (string[]) content.GetValueForProperty("AllowedIPRangeList",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).AllowedIPRangeList, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AcceptedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).AcceptedAudience = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[]) content.GetValueForProperty("AcceptedAudience",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).AcceptedAudience, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AcceptedAudiencesTypeConverter.ConvertFrom)); + } + if (content.Contains("EnableAutoStop")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnableAutoStop = (bool?) content.GetValueForProperty("EnableAutoStop",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).EnableAutoStop, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RestrictOutboundNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).RestrictOutboundNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag?) content.GetValueForProperty("RestrictOutboundNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).RestrictOutboundNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag.CreateFrom); + } + if (content.Contains("AllowedFqdnList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).AllowedFqdnList = (string[]) content.GetValueForProperty("AllowedFqdnList",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).AllowedFqdnList, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("PublicIPType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).PublicIPType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType?) content.GetValueForProperty("PublicIPType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).PublicIPType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType.CreateFrom); + } + if (content.Contains("VirtualClusterGraduationProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualClusterGraduationProperty = (string) content.GetValueForProperty("VirtualClusterGraduationProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualClusterGraduationProperty, global::System.Convert.ToString); + } + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("OptimizedAutoscaleVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscaleVersion = (int) content.GetValueForProperty("OptimizedAutoscaleVersion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscaleVersion, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("OptimizedAutoscaleMinimum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscaleMinimum = (int) content.GetValueForProperty("OptimizedAutoscaleMinimum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscaleMinimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("OptimizedAutoscaleMaximum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscaleMaximum = (int) content.GetValueForProperty("OptimizedAutoscaleMaximum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscaleMaximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("VirtualNetworkConfigurationSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualNetworkConfigurationSubnetId = (string) content.GetValueForProperty("VirtualNetworkConfigurationSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualNetworkConfigurationSubnetId, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultPropertyKeyName = (string) content.GetValueForProperty("KeyVaultPropertyKeyName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultPropertyKeyName, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultPropertyKeyVersion = (string) content.GetValueForProperty("KeyVaultPropertyKeyVersion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultPropertyKeyVersion, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyUserIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultPropertyUserIdentity = (string) content.GetValueForProperty("KeyVaultPropertyUserIdentity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultPropertyUserIdentity, global::System.Convert.ToString); + } + if (content.Contains("OptimizedAutoscaleIsEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscaleIsEnabled = (bool) content.GetValueForProperty("OptimizedAutoscaleIsEnabled",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).OptimizedAutoscaleIsEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("VirtualNetworkConfigurationEnginePublicIPId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualNetworkConfigurationEnginePublicIPId = (string) content.GetValueForProperty("VirtualNetworkConfigurationEnginePublicIPId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualNetworkConfigurationEnginePublicIPId, global::System.Convert.ToString); + } + if (content.Contains("VirtualNetworkConfigurationDataManagementPublicIPId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualNetworkConfigurationDataManagementPublicIPId = (string) content.GetValueForProperty("VirtualNetworkConfigurationDataManagementPublicIPId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).VirtualNetworkConfigurationDataManagementPublicIPId, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyVaultUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultPropertyKeyVaultUri = (string) content.GetValueForProperty("KeyVaultPropertyKeyVaultUri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).KeyVaultPropertyKeyVaultUri, global::System.Convert.ToString); + } + if (content.Contains("LanguageExtensionValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).LanguageExtensionValue = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[]) content.GetValueForProperty("LanguageExtensionValue",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).LanguageExtensionValue, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Cluster(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Cluster(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing a Kusto cluster. + [System.ComponentModel.TypeConverter(typeof(ClusterTypeConverter))] + public partial interface ICluster + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Cluster.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Cluster.TypeConverter.cs new file mode 100644 index 000000000000..761cdcf9a9a4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Cluster.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ClusterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Cluster.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Cluster.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Cluster.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Cluster.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Cluster.cs new file mode 100644 index 000000000000..7c69ac85611a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Cluster.cs @@ -0,0 +1,925 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing a Kusto cluster. + public partial class Cluster : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResource __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.TrackedResource(); + + /// The cluster's accepted audiences. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[] AcceptedAudience { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).AcceptedAudience; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).AcceptedAudience = value ?? null /* arrayOf */; } + + /// List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] AllowedFqdnList { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).AllowedFqdnList; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).AllowedFqdnList = value ?? null /* arrayOf */; } + + /// The list of ips in the format of CIDR allowed to connect to the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] AllowedIPRangeList { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).AllowedIPRangeList; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).AllowedIPRangeList = value ?? null /* arrayOf */; } + + /// Backing field for property. + private string _azureAsyncOperation; + + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string AzureAsyncOperation { get => this._azureAsyncOperation; set => this._azureAsyncOperation = value; } + + /// The cluster data ingestion URI. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string DataIngestionUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).DataIngestionUri; } + + /// + /// A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many + /// days). + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public bool? EnableAutoStop { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnableAutoStop; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnableAutoStop = value ?? default(bool); } + + /// A boolean value that indicates if the cluster's disks are encrypted. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public bool? EnableDiskEncryption { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnableDiskEncryption; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnableDiskEncryption = value ?? default(bool); } + + /// A boolean value that indicates if double encryption is enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public bool? EnableDoubleEncryption { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnableDoubleEncryption; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnableDoubleEncryption = value ?? default(bool); } + + /// A boolean value that indicates if the purge operations are enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public bool? EnablePurge { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnablePurge; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnablePurge = value ?? default(bool); } + + /// A boolean value that indicates if the streaming ingest is enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public bool? EnableStreamingIngest { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnableStreamingIngest; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnableStreamingIngest = value ?? default(bool); } + + /// The engine type + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType? EngineType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EngineType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EngineType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType)""); } + + /// Backing field for property. + private string _etag; + + /// A unique read-only string that changes whenever the resource is updated. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Etag { get => this._etag; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__trackedResource).Id; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity _identity; + + /// The identity of the cluster, if configured. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Identity()); set => this._identity = value; } + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).PrincipalId; } + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).TenantId; } + + /// + /// 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 all identities. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType)""); } + + /// + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities IdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).UserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).UserAssignedIdentity = value ?? null /* model class */; } + + /// The name of the key vault key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string KeyVaultPropertyKeyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultPropertyKeyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultPropertyKeyName = value ?? null; } + + /// The Uri of the key vault. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string KeyVaultPropertyKeyVaultUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultPropertyKeyVaultUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultPropertyKeyVaultUri = value ?? null; } + + /// The version of the key vault key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string KeyVaultPropertyKeyVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultPropertyKeyVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultPropertyKeyVersion = value ?? null; } + + /// The user assigned identity (ARM resource id) that has access to the key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string KeyVaultPropertyUserIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultPropertyUserIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultPropertyUserIdentity = value ?? null; } + + /// The list of language extensions. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] LanguageExtensionValue { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).LanguageExtensionValue; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).LanguageExtensionValue = value ?? null /* arrayOf */; } + + /// The geo-location where the resource lives + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)__trackedResource).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)__trackedResource).Location = value ; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__trackedResource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__trackedResource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__trackedResource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__trackedResource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__trackedResource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__trackedResource).Type = value; } + + /// Internal Acessors for DataIngestionUri + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal.DataIngestionUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).DataIngestionUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).DataIngestionUri = value; } + + /// Internal Acessors for Etag + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal.Etag { get => this._etag; set { {_etag = value;} } } + + /// Internal Acessors for Identity + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal.Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Identity()); set { {_identity = value;} } } + + /// Internal Acessors for IdentityPrincipalId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal.IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).PrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).PrincipalId = value; } + + /// Internal Acessors for IdentityTenantId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal.IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).TenantId = value; } + + /// Internal Acessors for KeyVaultProperty + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal.KeyVaultProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultProperty = value; } + + /// Internal Acessors for LanguageExtension + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal.LanguageExtension { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).LanguageExtension; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).LanguageExtension = value; } + + /// Internal Acessors for OptimizedAutoscale + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal.OptimizedAutoscale { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscale; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscale = value; } + + /// Internal Acessors for PrivateEndpointConnection + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[] Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal.PrivateEndpointConnection { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).PrivateEndpointConnection; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).PrivateEndpointConnection = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureSku()); set { {_sku = value;} } } + + /// Internal Acessors for State + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal.State { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).State; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).State = value; } + + /// Internal Acessors for StateReason + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal.StateReason { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).StateReason; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).StateReason = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Internal Acessors for Uri + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal.Uri { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).Uri; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).Uri = value; } + + /// Internal Acessors for VirtualNetworkConfiguration + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal.VirtualNetworkConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualNetworkConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualNetworkConfiguration = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__trackedResource).Name; } + + /// + /// A boolean value that indicate if the optimized autoscale feature is enabled or not. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public bool? OptimizedAutoscaleIsEnabled { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscaleIsEnabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscaleIsEnabled = value ?? default(bool); } + + /// Maximum allowed instances count. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public int? OptimizedAutoscaleMaximum { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscaleMaximum; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscaleMaximum = value ?? default(int); } + + /// Minimum allowed instances count. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public int? OptimizedAutoscaleMinimum { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscaleMinimum; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscaleMinimum = value ?? default(int); } + + /// The version of the template defined, for instance 1. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public int? OptimizedAutoscaleVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscaleVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscaleVersion = value ?? default(int); } + + /// A list of private endpoint connections. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[] PrivateEndpointConnection { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).PrivateEndpointConnection; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties _property; + + /// The cluster properties. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterProperties()); set => this._property = value; } + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).ProvisioningState; } + + /// + /// Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType? PublicIPType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).PublicIPType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).PublicIPType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType)""); } + + /// + /// Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster + /// is allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess? PublicNetworkAccess { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).PublicNetworkAccess; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).PublicNetworkAccess = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess)""); } + + /// + /// Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled' + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag? RestrictOutboundNetworkAccess { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).RestrictOutboundNetworkAccess; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).RestrictOutboundNetworkAccess = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku _sku; + + /// The SKU of the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureSku()); set => this._sku = value; } + + /// The number of instances of the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public int? SkuCapacity { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Capacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Capacity = value ?? default(int); } + + /// SKU name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Name = value ; } + + /// SKU tier. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier SkuTier { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Tier; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Tier = value ; } + + /// The state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State? State { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).State; } + + /// The reason for the cluster's current state. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string StateReason { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).StateReason; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData _systemData; + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType)""); } + + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)__trackedResource).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal)__trackedResource).Tag = value ?? null /* model class */; } + + /// The cluster's external tenants. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[] TrustedExternalTenant { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).TrustedExternalTenant; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).TrustedExternalTenant = value ?? null /* arrayOf */; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__trackedResource).Type; } + + /// The cluster URI. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string Uri { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).Uri; } + + /// Virtual Cluster graduation properties + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string VirtualClusterGraduationProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualClusterGraduationProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualClusterGraduationProperty = value ?? null; } + + /// Data management's service public IP address resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string VirtualNetworkConfigurationDataManagementPublicIPId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualNetworkConfigurationDataManagementPublicIPId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualNetworkConfigurationDataManagementPublicIPId = value ?? null; } + + /// Engine service's public IP address resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string VirtualNetworkConfigurationEnginePublicIPId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualNetworkConfigurationEnginePublicIPId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualNetworkConfigurationEnginePublicIPId = value ?? null; } + + /// The subnet resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string VirtualNetworkConfigurationSubnetId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualNetworkConfigurationSubnetId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualNetworkConfigurationSubnetId = value ?? null; } + + /// Backing field for property. + private string[] _zone; + + /// The availability zones of the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string[] Zone { get => this._zone; set => this._zone = value; } + + /// Creates an new instance. + public Cluster() + { + + } + + /// + void Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable.ReadHeaders(global::System.Net.Http.Headers.HttpResponseHeaders headers) + { + if (headers.TryGetValues("Azure-AsyncOperation", out var __azureAsyncOperationHeader0)) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterInternal)this).AzureAsyncOperation = System.Linq.Enumerable.FirstOrDefault(__azureAsyncOperationHeader0) is string __headerAzureAsyncOperationHeader0 ? __headerAzureAsyncOperationHeader0 : (string)null; + } + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__trackedResource), __trackedResource); + await eventListener.AssertObjectIsValid(nameof(__trackedResource), __trackedResource); + } + } + /// Class representing a Kusto cluster. + public partial interface ICluster : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResource + { + /// The cluster's accepted audiences. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The cluster's accepted audiences.", + SerializedName = @"acceptedAudiences", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[] AcceptedAudience { get; set; } + /// List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster.", + SerializedName = @"allowedFqdnList", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedFqdnList { get; set; } + /// The list of ips in the format of CIDR allowed to connect to the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of ips in the format of CIDR allowed to connect to the cluster.", + SerializedName = @"allowedIpRangeList", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedIPRangeList { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"Azure-AsyncOperation", + PossibleTypes = new [] { typeof(string) })] + string AzureAsyncOperation { get; set; } + /// The cluster data ingestion URI. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The cluster data ingestion URI.", + SerializedName = @"dataIngestionUri", + PossibleTypes = new [] { typeof(string) })] + string DataIngestionUri { get; } + /// + /// A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many + /// days). + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days).", + SerializedName = @"enableAutoStop", + PossibleTypes = new [] { typeof(bool) })] + bool? EnableAutoStop { get; set; } + /// A boolean value that indicates if the cluster's disks are encrypted. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the cluster's disks are encrypted.", + SerializedName = @"enableDiskEncryption", + PossibleTypes = new [] { typeof(bool) })] + bool? EnableDiskEncryption { get; set; } + /// A boolean value that indicates if double encryption is enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if double encryption is enabled.", + SerializedName = @"enableDoubleEncryption", + PossibleTypes = new [] { typeof(bool) })] + bool? EnableDoubleEncryption { get; set; } + /// A boolean value that indicates if the purge operations are enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the purge operations are enabled.", + SerializedName = @"enablePurge", + PossibleTypes = new [] { typeof(bool) })] + bool? EnablePurge { get; set; } + /// A boolean value that indicates if the streaming ingest is enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the streaming ingest is enabled.", + SerializedName = @"enableStreamingIngest", + PossibleTypes = new [] { typeof(bool) })] + bool? EnableStreamingIngest { get; set; } + /// The engine type + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The engine type", + SerializedName = @"engineType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType? EngineType { get; set; } + /// A unique read-only string that changes whenever the resource is updated. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"A unique read-only string that changes whenever the resource is updated.", + SerializedName = @"etag", + PossibleTypes = new [] { typeof(string) })] + string Etag { get; } + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string IdentityPrincipalId { get; } + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string IdentityTenantId { get; } + /// + /// 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 all identities. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + 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 all identities.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// The name of the key vault key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the key vault key.", + SerializedName = @"keyName", + PossibleTypes = new [] { typeof(string) })] + string KeyVaultPropertyKeyName { get; set; } + /// The Uri of the key vault. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Uri of the key vault.", + SerializedName = @"keyVaultUri", + PossibleTypes = new [] { typeof(string) })] + string KeyVaultPropertyKeyVaultUri { get; set; } + /// The version of the key vault key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the key vault key.", + SerializedName = @"keyVersion", + PossibleTypes = new [] { typeof(string) })] + string KeyVaultPropertyKeyVersion { get; set; } + /// The user assigned identity (ARM resource id) that has access to the key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user assigned identity (ARM resource id) that has access to the key.", + SerializedName = @"userIdentity", + PossibleTypes = new [] { typeof(string) })] + string KeyVaultPropertyUserIdentity { get; set; } + /// The list of language extensions. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of language extensions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] LanguageExtensionValue { get; set; } + /// + /// A boolean value that indicate if the optimized autoscale feature is enabled or not. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicate if the optimized autoscale feature is enabled or not.", + SerializedName = @"isEnabled", + PossibleTypes = new [] { typeof(bool) })] + bool? OptimizedAutoscaleIsEnabled { get; set; } + /// Maximum allowed instances count. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum allowed instances count.", + SerializedName = @"maximum", + PossibleTypes = new [] { typeof(int) })] + int? OptimizedAutoscaleMaximum { get; set; } + /// Minimum allowed instances count. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum allowed instances count.", + SerializedName = @"minimum", + PossibleTypes = new [] { typeof(int) })] + int? OptimizedAutoscaleMinimum { get; set; } + /// The version of the template defined, for instance 1. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the template defined, for instance 1.", + SerializedName = @"version", + PossibleTypes = new [] { typeof(int) })] + int? OptimizedAutoscaleVersion { get; set; } + /// A list of private endpoint connections. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"A list of private endpoint connections.", + SerializedName = @"privateEndpointConnections", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[] PrivateEndpointConnection { get; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// + /// Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6)", + SerializedName = @"publicIPType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType? PublicIPType { get; set; } + /// + /// Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster + /// is allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster is allowed", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// + /// Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled' + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled'", + SerializedName = @"restrictOutboundNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag? RestrictOutboundNetworkAccess { get; set; } + /// The number of instances of the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of instances of the cluster.", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + int? SkuCapacity { get; set; } + /// SKU name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"SKU name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName SkuName { get; set; } + /// SKU tier. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"SKU tier.", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier SkuTier { get; set; } + /// The state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The state of the resource.", + SerializedName = @"state", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State? State { get; } + /// The reason for the cluster's current state. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The reason for the cluster's current state.", + SerializedName = @"stateReason", + PossibleTypes = new [] { typeof(string) })] + string StateReason { get; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource creation (UTC).", + SerializedName = @"createdAt", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity that created the resource.", + SerializedName = @"createdBy", + PossibleTypes = new [] { typeof(string) })] + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource last modification (UTC)", + SerializedName = @"lastModifiedAt", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? SystemDataLastModifiedAt { get; set; } + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity that last modified the resource.", + SerializedName = @"lastModifiedBy", + PossibleTypes = new [] { typeof(string) })] + string SystemDataLastModifiedBy { get; set; } + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that last modified the resource.", + SerializedName = @"lastModifiedByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// The cluster's external tenants. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The cluster's external tenants.", + SerializedName = @"trustedExternalTenants", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[] TrustedExternalTenant { get; set; } + /// The cluster URI. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The cluster URI.", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + string Uri { get; } + /// Virtual Cluster graduation properties + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Virtual Cluster graduation properties", + SerializedName = @"virtualClusterGraduationProperties", + PossibleTypes = new [] { typeof(string) })] + string VirtualClusterGraduationProperty { get; set; } + /// Data management's service public IP address resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Data management's service public IP address resource id.", + SerializedName = @"dataManagementPublicIpId", + PossibleTypes = new [] { typeof(string) })] + string VirtualNetworkConfigurationDataManagementPublicIPId { get; set; } + /// Engine service's public IP address resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Engine service's public IP address resource id.", + SerializedName = @"enginePublicIpId", + PossibleTypes = new [] { typeof(string) })] + string VirtualNetworkConfigurationEnginePublicIPId { get; set; } + /// The subnet resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The subnet resource id.", + SerializedName = @"subnetId", + PossibleTypes = new [] { typeof(string) })] + string VirtualNetworkConfigurationSubnetId { get; set; } + /// The availability zones of the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The availability zones of the cluster.", + SerializedName = @"zones", + PossibleTypes = new [] { typeof(string) })] + string[] Zone { get; set; } + + } + /// Class representing a Kusto cluster. + internal partial interface IClusterInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceInternal + { + /// The cluster's accepted audiences. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[] AcceptedAudience { get; set; } + /// List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + string[] AllowedFqdnList { get; set; } + /// The list of ips in the format of CIDR allowed to connect to the cluster. + string[] AllowedIPRangeList { get; set; } + + string AzureAsyncOperation { get; set; } + /// The cluster data ingestion URI. + string DataIngestionUri { get; set; } + /// + /// A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many + /// days). + /// + bool? EnableAutoStop { get; set; } + /// A boolean value that indicates if the cluster's disks are encrypted. + bool? EnableDiskEncryption { get; set; } + /// A boolean value that indicates if double encryption is enabled. + bool? EnableDoubleEncryption { get; set; } + /// A boolean value that indicates if the purge operations are enabled. + bool? EnablePurge { get; set; } + /// A boolean value that indicates if the streaming ingest is enabled. + bool? EnableStreamingIngest { get; set; } + /// The engine type + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType? EngineType { get; set; } + /// A unique read-only string that changes whenever the resource is updated. + string Etag { get; set; } + /// The identity of the cluster, if configured. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity Identity { get; set; } + /// The principal ID of resource identity. + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + string IdentityTenantId { get; set; } + /// + /// 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 all identities. + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// KeyVault properties for the cluster encryption. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties KeyVaultProperty { get; set; } + /// The name of the key vault key. + string KeyVaultPropertyKeyName { get; set; } + /// The Uri of the key vault. + string KeyVaultPropertyKeyVaultUri { get; set; } + /// The version of the key vault key. + string KeyVaultPropertyKeyVersion { get; set; } + /// The user assigned identity (ARM resource id) that has access to the key. + string KeyVaultPropertyUserIdentity { get; set; } + /// List of the cluster's language extensions. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList LanguageExtension { get; set; } + /// The list of language extensions. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] LanguageExtensionValue { get; set; } + /// Optimized auto scale definition. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale OptimizedAutoscale { get; set; } + /// + /// A boolean value that indicate if the optimized autoscale feature is enabled or not. + /// + bool? OptimizedAutoscaleIsEnabled { get; set; } + /// Maximum allowed instances count. + int? OptimizedAutoscaleMaximum { get; set; } + /// Minimum allowed instances count. + int? OptimizedAutoscaleMinimum { get; set; } + /// The version of the template defined, for instance 1. + int? OptimizedAutoscaleVersion { get; set; } + /// A list of private endpoint connections. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[] PrivateEndpointConnection { get; set; } + /// The cluster properties. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties Property { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// + /// Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType? PublicIPType { get; set; } + /// + /// Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster + /// is allowed + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// + /// Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled' + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag? RestrictOutboundNetworkAccess { get; set; } + /// The SKU of the cluster. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku Sku { get; set; } + /// The number of instances of the cluster. + int? SkuCapacity { get; set; } + /// SKU name. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName SkuName { get; set; } + /// SKU tier. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier SkuTier { get; set; } + /// The state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State? State { get; set; } + /// The reason for the cluster's current state. + string StateReason { get; set; } + /// Metadata pertaining to creation and last modification of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData SystemData { get; set; } + /// The timestamp of resource creation (UTC). + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + global::System.DateTime? SystemDataLastModifiedAt { get; set; } + /// The identity that last modified the resource. + string SystemDataLastModifiedBy { get; set; } + /// The type of identity that last modified the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// The cluster's external tenants. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[] TrustedExternalTenant { get; set; } + /// The cluster URI. + string Uri { get; set; } + /// Virtual Cluster graduation properties + string VirtualClusterGraduationProperty { get; set; } + /// Virtual network definition. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration VirtualNetworkConfiguration { get; set; } + /// Data management's service public IP address resource id. + string VirtualNetworkConfigurationDataManagementPublicIPId { get; set; } + /// Engine service's public IP address resource id. + string VirtualNetworkConfigurationEnginePublicIPId { get; set; } + /// The subnet resource id. + string VirtualNetworkConfigurationSubnetId { get; set; } + /// The availability zones of the cluster. + string[] Zone { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Cluster.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Cluster.json.cs new file mode 100644 index 000000000000..63eb1e2e2c56 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Cluster.json.cs @@ -0,0 +1,132 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing a Kusto cluster. + public partial class Cluster + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal Cluster(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.TrackedResource(json); + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureSku.FromJson(__jsonSku) : Sku;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + {_identity = If( json?.PropertyT("identity"), out var __jsonIdentity) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Identity.FromJson(__jsonIdentity) : Identity;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterProperties.FromJson(__jsonProperties) : Property;} + {_zone = If( json?.PropertyT("zones"), out var __jsonZones) ? If( __jsonZones as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(string) (__u is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Zone;} + {_etag = If( json?.PropertyT("etag"), out var __jsonEtag) ? (string)__jsonEtag : (string)Etag;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new Cluster(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __trackedResource?.ToJson(container, serializationMode); + AddIf( null != this._sku ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._sku.ToJson(null,serializationMode) : null, "sku" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AddIf( null != this._identity ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._identity.ToJson(null,serializationMode) : null, "identity" ,container.Add ); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + if (null != this._zone) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._zone ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("zones",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._etag)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._etag.ToString()) : null, "etag" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterCheckNameRequest.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterCheckNameRequest.PowerShell.cs new file mode 100644 index 000000000000..df07f7f0b8e5 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterCheckNameRequest.PowerShell.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The result returned from a cluster check name availability request. + [System.ComponentModel.TypeConverter(typeof(ClusterCheckNameRequestTypeConverter))] + public partial class ClusterCheckNameRequest + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ClusterCheckNameRequest(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequestInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequestInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ClusterCheckNameRequest(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequestInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequestInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ClusterCheckNameRequest(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ClusterCheckNameRequest(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The result returned from a cluster check name availability request. + [System.ComponentModel.TypeConverter(typeof(ClusterCheckNameRequestTypeConverter))] + public partial interface IClusterCheckNameRequest + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterCheckNameRequest.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterCheckNameRequest.TypeConverter.cs new file mode 100644 index 000000000000..e45b6bd16ed0 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterCheckNameRequest.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ClusterCheckNameRequestTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ClusterCheckNameRequest.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ClusterCheckNameRequest.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ClusterCheckNameRequest.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterCheckNameRequest.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterCheckNameRequest.cs new file mode 100644 index 000000000000..6cc56afbbedc --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterCheckNameRequest.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The result returned from a cluster check name availability request. + public partial class ClusterCheckNameRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequestInternal + { + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequestInternal.Type { get => this._type; set { {_type = value;} } } + + /// Backing field for property. + private string _name; + + /// Cluster name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _type= @"Microsoft.Kusto/clusters"; + + /// The type of resource, Microsoft.Kusto/clusters. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Type { get => this._type; } + + /// Creates an new instance. + public ClusterCheckNameRequest() + { + + } + } + /// The result returned from a cluster check name availability request. + public partial interface IClusterCheckNameRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Cluster name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Cluster name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// The type of resource, Microsoft.Kusto/clusters. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = true, + Description = @"The type of resource, Microsoft.Kusto/clusters.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; } + + } + /// The result returned from a cluster check name availability request. + internal partial interface IClusterCheckNameRequestInternal + + { + /// Cluster name. + string Name { get; set; } + /// The type of resource, Microsoft.Kusto/clusters. + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterCheckNameRequest.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterCheckNameRequest.json.cs new file mode 100644 index 000000000000..75ff866c0439 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterCheckNameRequest.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The result returned from a cluster check name availability request. + public partial class ClusterCheckNameRequest + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ClusterCheckNameRequest(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ClusterCheckNameRequest(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterListResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterListResult.PowerShell.cs new file mode 100644 index 000000000000..d8c7c1d70240 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterListResult.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The list Kusto clusters operation response. + [System.ComponentModel.TypeConverter(typeof(ClusterListResultTypeConverter))] + public partial class ClusterListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ClusterListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ClusterListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ClusterListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ClusterListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The list Kusto clusters operation response. + [System.ComponentModel.TypeConverter(typeof(ClusterListResultTypeConverter))] + public partial interface IClusterListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterListResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterListResult.TypeConverter.cs new file mode 100644 index 000000000000..ddbb0cda39a4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ClusterListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ClusterListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ClusterListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ClusterListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterListResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterListResult.cs new file mode 100644 index 000000000000..17ea979c99ce --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterListResult.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto clusters operation response. + public partial class ClusterListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterListResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterListResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster[] _value; + + /// The list of Kusto clusters. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ClusterListResult() + { + + } + } + /// The list Kusto clusters operation response. + public partial interface IClusterListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The list of Kusto clusters. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of Kusto clusters.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster[] Value { get; set; } + + } + /// The list Kusto clusters operation response. + internal partial interface IClusterListResultInternal + + { + /// The list of Kusto clusters. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterListResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterListResult.json.cs new file mode 100644 index 000000000000..ec4ff2face38 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterListResult.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto clusters operation response. + public partial class ClusterListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ClusterListResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Cluster.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ClusterListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignment.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignment.PowerShell.cs new file mode 100644 index 000000000000..9ccf2f587a6e --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignment.PowerShell.cs @@ -0,0 +1,230 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing a cluster principal assignment. + [System.ComponentModel.TypeConverter(typeof(ClusterPrincipalAssignmentTypeConverter))] + public partial class ClusterPrincipalAssignment + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ClusterPrincipalAssignment(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("PrincipalType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).PrincipalType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType) content.GetValueForProperty("PrincipalType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).PrincipalType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("Role")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).Role = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole) content.GetValueForProperty("Role",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).Role, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole.CreateFrom); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("TenantName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).TenantName = (string) content.GetValueForProperty("TenantName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).TenantName, global::System.Convert.ToString); + } + if (content.Contains("PrincipalName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).PrincipalName = (string) content.GetValueForProperty("PrincipalName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).PrincipalName, global::System.Convert.ToString); + } + if (content.Contains("AadObjectId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).AadObjectId = (string) content.GetValueForProperty("AadObjectId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).AadObjectId, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ClusterPrincipalAssignment(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("PrincipalType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).PrincipalType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType) content.GetValueForProperty("PrincipalType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).PrincipalType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("Role")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).Role = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole) content.GetValueForProperty("Role",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).Role, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole.CreateFrom); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("TenantName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).TenantName = (string) content.GetValueForProperty("TenantName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).TenantName, global::System.Convert.ToString); + } + if (content.Contains("PrincipalName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).PrincipalName = (string) content.GetValueForProperty("PrincipalName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).PrincipalName, global::System.Convert.ToString); + } + if (content.Contains("AadObjectId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).AadObjectId = (string) content.GetValueForProperty("AadObjectId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal)this).AadObjectId, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ClusterPrincipalAssignment(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ClusterPrincipalAssignment(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing a cluster principal assignment. + [System.ComponentModel.TypeConverter(typeof(ClusterPrincipalAssignmentTypeConverter))] + public partial interface IClusterPrincipalAssignment + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignment.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignment.TypeConverter.cs new file mode 100644 index 000000000000..3bf59e3f2f5b --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignment.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ClusterPrincipalAssignmentTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ClusterPrincipalAssignment.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ClusterPrincipalAssignment.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ClusterPrincipalAssignment.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignment.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignment.cs new file mode 100644 index 000000000000..8d41e3000c9c --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignment.cs @@ -0,0 +1,219 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing a cluster principal assignment. + public partial class ClusterPrincipalAssignment : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(); + + /// The service principal object id in AAD (Azure active directory) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string AadObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).AadObjectId; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for AadObjectId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal.AadObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).AadObjectId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).AadObjectId = value; } + + /// Internal Acessors for PrincipalName + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal.PrincipalName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).PrincipalName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).PrincipalName = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for TenantName + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentInternal.TenantName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).TenantName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).TenantName = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; } + + /// + /// The principal ID assigned to the cluster principal. It can be a user email, application ID, or security group name. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string PrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).PrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).PrincipalId = value ?? null; } + + /// The principal name + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string PrincipalName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).PrincipalName; } + + /// Principal type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType? PrincipalType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).PrincipalType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).PrincipalType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalProperties _property; + + /// The cluster principal. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalProperties()); set => this._property = value; } + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).ProvisioningState; } + + /// Cluster principal role. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole? Role { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).Role; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).Role = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole)""); } + + /// The tenant id of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string TenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).TenantId = value ?? null; } + + /// The tenant name of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string TenantName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)Property).TenantName; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public ClusterPrincipalAssignment() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Class representing a cluster principal assignment. + public partial interface IClusterPrincipalAssignment : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource + { + /// The service principal object id in AAD (Azure active directory) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The service principal object id in AAD (Azure active directory)", + SerializedName = @"aadObjectId", + PossibleTypes = new [] { typeof(string) })] + string AadObjectId { get; } + /// + /// The principal ID assigned to the cluster principal. It can be a user email, application ID, or security group name. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID assigned to the cluster principal. It can be a user email, application ID, or security group name.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string PrincipalId { get; set; } + /// The principal name + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The principal name", + SerializedName = @"principalName", + PossibleTypes = new [] { typeof(string) })] + string PrincipalName { get; } + /// Principal type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Principal type.", + SerializedName = @"principalType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType? PrincipalType { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// Cluster principal role. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Cluster principal role.", + SerializedName = @"role", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole? Role { get; set; } + /// The tenant id of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant id of the principal", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string TenantId { get; set; } + /// The tenant name of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The tenant name of the principal", + SerializedName = @"tenantName", + PossibleTypes = new [] { typeof(string) })] + string TenantName { get; } + + } + /// Class representing a cluster principal assignment. + internal partial interface IClusterPrincipalAssignmentInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal + { + /// The service principal object id in AAD (Azure active directory) + string AadObjectId { get; set; } + /// + /// The principal ID assigned to the cluster principal. It can be a user email, application ID, or security group name. + /// + string PrincipalId { get; set; } + /// The principal name + string PrincipalName { get; set; } + /// Principal type. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType? PrincipalType { get; set; } + /// The cluster principal. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalProperties Property { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// Cluster principal role. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole? Role { get; set; } + /// The tenant id of the principal + string TenantId { get; set; } + /// The tenant name of the principal + string TenantName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignment.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignment.json.cs new file mode 100644 index 000000000000..94ce3f1fe2a9 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignment.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing a cluster principal assignment. + public partial class ClusterPrincipalAssignment + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ClusterPrincipalAssignment(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ClusterPrincipalAssignment(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentCheckNameRequest.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentCheckNameRequest.PowerShell.cs new file mode 100644 index 000000000000..9fc71868c5ad --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentCheckNameRequest.PowerShell.cs @@ -0,0 +1,153 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A principal assignment check name availability request. + [System.ComponentModel.TypeConverter(typeof(ClusterPrincipalAssignmentCheckNameRequestTypeConverter))] + public partial class ClusterPrincipalAssignmentCheckNameRequest + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ClusterPrincipalAssignmentCheckNameRequest(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequestInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequestInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ClusterPrincipalAssignmentCheckNameRequest(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequestInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequestInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ClusterPrincipalAssignmentCheckNameRequest(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ClusterPrincipalAssignmentCheckNameRequest(content); + } + + /// + /// Creates a new instance of , deserializing the content from a + /// json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A principal assignment check name availability request. + [System.ComponentModel.TypeConverter(typeof(ClusterPrincipalAssignmentCheckNameRequestTypeConverter))] + public partial interface IClusterPrincipalAssignmentCheckNameRequest + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentCheckNameRequest.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentCheckNameRequest.TypeConverter.cs new file mode 100644 index 000000000000..acca3c3312ff --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentCheckNameRequest.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ClusterPrincipalAssignmentCheckNameRequestTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ClusterPrincipalAssignmentCheckNameRequest.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ClusterPrincipalAssignmentCheckNameRequest.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ClusterPrincipalAssignmentCheckNameRequest.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentCheckNameRequest.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentCheckNameRequest.cs new file mode 100644 index 000000000000..5b1f82bd7931 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentCheckNameRequest.cs @@ -0,0 +1,73 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A principal assignment check name availability request. + public partial class ClusterPrincipalAssignmentCheckNameRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequestInternal + { + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequestInternal.Type { get => this._type; set { {_type = value;} } } + + /// Backing field for property. + private string _name; + + /// Principal Assignment resource name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _type= @"Microsoft.Kusto/clusters/principalAssignments"; + + /// The type of resource, Microsoft.Kusto/clusters/principalAssignments. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Type { get => this._type; } + + /// + /// Creates an new instance. + /// + public ClusterPrincipalAssignmentCheckNameRequest() + { + + } + } + /// A principal assignment check name availability request. + public partial interface IClusterPrincipalAssignmentCheckNameRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Principal Assignment resource name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Principal Assignment resource name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// The type of resource, Microsoft.Kusto/clusters/principalAssignments. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = true, + Description = @"The type of resource, Microsoft.Kusto/clusters/principalAssignments.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; } + + } + /// A principal assignment check name availability request. + internal partial interface IClusterPrincipalAssignmentCheckNameRequestInternal + + { + /// Principal Assignment resource name. + string Name { get; set; } + /// The type of resource, Microsoft.Kusto/clusters/principalAssignments. + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentCheckNameRequest.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentCheckNameRequest.json.cs new file mode 100644 index 000000000000..940e0efccd02 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentCheckNameRequest.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A principal assignment check name availability request. + public partial class ClusterPrincipalAssignmentCheckNameRequest + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ClusterPrincipalAssignmentCheckNameRequest(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ClusterPrincipalAssignmentCheckNameRequest(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentListResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentListResult.PowerShell.cs new file mode 100644 index 000000000000..5ff5d50e6e59 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentListResult.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The list Kusto cluster principal assignments operation response. + [System.ComponentModel.TypeConverter(typeof(ClusterPrincipalAssignmentListResultTypeConverter))] + public partial class ClusterPrincipalAssignmentListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ClusterPrincipalAssignmentListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalAssignmentTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ClusterPrincipalAssignmentListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalAssignmentTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ClusterPrincipalAssignmentListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ClusterPrincipalAssignmentListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The list Kusto cluster principal assignments operation response. + [System.ComponentModel.TypeConverter(typeof(ClusterPrincipalAssignmentListResultTypeConverter))] + public partial interface IClusterPrincipalAssignmentListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentListResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentListResult.TypeConverter.cs new file mode 100644 index 000000000000..b874d4bf462a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentListResult.TypeConverter.cs @@ -0,0 +1,149 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ClusterPrincipalAssignmentListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ClusterPrincipalAssignmentListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ClusterPrincipalAssignmentListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ClusterPrincipalAssignmentListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentListResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentListResult.cs new file mode 100644 index 000000000000..082313a20a4e --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentListResult.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto cluster principal assignments operation response. + public partial class ClusterPrincipalAssignmentListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentListResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentListResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment[] _value; + + /// The list of Kusto cluster principal assignments. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ClusterPrincipalAssignmentListResult() + { + + } + } + /// The list Kusto cluster principal assignments operation response. + public partial interface IClusterPrincipalAssignmentListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The list of Kusto cluster principal assignments. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of Kusto cluster principal assignments.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment[] Value { get; set; } + + } + /// The list Kusto cluster principal assignments operation response. + internal partial interface IClusterPrincipalAssignmentListResultInternal + + { + /// The list of Kusto cluster principal assignments. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentListResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentListResult.json.cs new file mode 100644 index 000000000000..a2f372698884 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalAssignmentListResult.json.cs @@ -0,0 +1,115 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto cluster principal assignments operation response. + public partial class ClusterPrincipalAssignmentListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ClusterPrincipalAssignmentListResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalAssignment.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ClusterPrincipalAssignmentListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalProperties.PowerShell.cs new file mode 100644 index 000000000000..01d5ecf7507f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalProperties.PowerShell.cs @@ -0,0 +1,198 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A class representing cluster principal property. + [System.ComponentModel.TypeConverter(typeof(ClusterPrincipalPropertiesTypeConverter))] + public partial class ClusterPrincipalProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ClusterPrincipalProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("Role")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).Role = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole) content.GetValueForProperty("Role",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).Role, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole.CreateFrom); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("PrincipalType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).PrincipalType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType) content.GetValueForProperty("PrincipalType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).PrincipalType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType.CreateFrom); + } + if (content.Contains("TenantName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).TenantName = (string) content.GetValueForProperty("TenantName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).TenantName, global::System.Convert.ToString); + } + if (content.Contains("PrincipalName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).PrincipalName = (string) content.GetValueForProperty("PrincipalName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).PrincipalName, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("AadObjectId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).AadObjectId = (string) content.GetValueForProperty("AadObjectId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).AadObjectId, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ClusterPrincipalProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("Role")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).Role = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole) content.GetValueForProperty("Role",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).Role, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole.CreateFrom); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("PrincipalType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).PrincipalType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType) content.GetValueForProperty("PrincipalType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).PrincipalType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType.CreateFrom); + } + if (content.Contains("TenantName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).TenantName = (string) content.GetValueForProperty("TenantName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).TenantName, global::System.Convert.ToString); + } + if (content.Contains("PrincipalName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).PrincipalName = (string) content.GetValueForProperty("PrincipalName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).PrincipalName, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("AadObjectId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).AadObjectId = (string) content.GetValueForProperty("AadObjectId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal)this).AadObjectId, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ClusterPrincipalProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ClusterPrincipalProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A class representing cluster principal property. + [System.ComponentModel.TypeConverter(typeof(ClusterPrincipalPropertiesTypeConverter))] + public partial interface IClusterPrincipalProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalProperties.TypeConverter.cs new file mode 100644 index 000000000000..87c012c07027 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ClusterPrincipalPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ClusterPrincipalProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ClusterPrincipalProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ClusterPrincipalProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalProperties.cs new file mode 100644 index 000000000000..f70c0f1d037c --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalProperties.cs @@ -0,0 +1,188 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class representing cluster principal property. + public partial class ClusterPrincipalProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal + { + + /// Backing field for property. + private string _aadObjectId; + + /// The service principal object id in AAD (Azure active directory) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string AadObjectId { get => this._aadObjectId; } + + /// Internal Acessors for AadObjectId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal.AadObjectId { get => this._aadObjectId; set { {_aadObjectId = value;} } } + + /// Internal Acessors for PrincipalName + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal.PrincipalName { get => this._principalName; set { {_principalName = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for TenantName + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalPropertiesInternal.TenantName { get => this._tenantName; set { {_tenantName = value;} } } + + /// Backing field for property. + private string _principalId; + + /// + /// The principal ID assigned to the cluster principal. It can be a user email, application ID, or security group name. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string PrincipalId { get => this._principalId; set => this._principalId = value; } + + /// Backing field for property. + private string _principalName; + + /// The principal name + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string PrincipalName { get => this._principalName; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType _principalType; + + /// Principal type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType PrincipalType { get => this._principalType; set => this._principalType = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? _provisioningState; + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole _role; + + /// Cluster principal role. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole Role { get => this._role; set => this._role = value; } + + /// Backing field for property. + private string _tenantId; + + /// The tenant id of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string TenantId { get => this._tenantId; set => this._tenantId = value; } + + /// Backing field for property. + private string _tenantName; + + /// The tenant name of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string TenantName { get => this._tenantName; } + + /// Creates an new instance. + public ClusterPrincipalProperties() + { + + } + } + /// A class representing cluster principal property. + public partial interface IClusterPrincipalProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The service principal object id in AAD (Azure active directory) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The service principal object id in AAD (Azure active directory)", + SerializedName = @"aadObjectId", + PossibleTypes = new [] { typeof(string) })] + string AadObjectId { get; } + /// + /// The principal ID assigned to the cluster principal. It can be a user email, application ID, or security group name. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The principal ID assigned to the cluster principal. It can be a user email, application ID, or security group name.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string PrincipalId { get; set; } + /// The principal name + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The principal name", + SerializedName = @"principalName", + PossibleTypes = new [] { typeof(string) })] + string PrincipalName { get; } + /// Principal type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Principal type.", + SerializedName = @"principalType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType PrincipalType { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// Cluster principal role. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Cluster principal role.", + SerializedName = @"role", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole Role { get; set; } + /// The tenant id of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant id of the principal", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string TenantId { get; set; } + /// The tenant name of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The tenant name of the principal", + SerializedName = @"tenantName", + PossibleTypes = new [] { typeof(string) })] + string TenantName { get; } + + } + /// A class representing cluster principal property. + internal partial interface IClusterPrincipalPropertiesInternal + + { + /// The service principal object id in AAD (Azure active directory) + string AadObjectId { get; set; } + /// + /// The principal ID assigned to the cluster principal. It can be a user email, application ID, or security group name. + /// + string PrincipalId { get; set; } + /// The principal name + string PrincipalName { get; set; } + /// Principal type. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType PrincipalType { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// Cluster principal role. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole Role { get; set; } + /// The tenant id of the principal + string TenantId { get; set; } + /// The tenant name of the principal + string TenantName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalProperties.json.cs new file mode 100644 index 000000000000..1be45804d02d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterPrincipalProperties.json.cs @@ -0,0 +1,132 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class representing cluster principal property. + public partial class ClusterPrincipalProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ClusterPrincipalProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_principalId = If( json?.PropertyT("principalId"), out var __jsonPrincipalId) ? (string)__jsonPrincipalId : (string)PrincipalId;} + {_role = If( json?.PropertyT("role"), out var __jsonRole) ? (string)__jsonRole : (string)Role;} + {_tenantId = If( json?.PropertyT("tenantId"), out var __jsonTenantId) ? (string)__jsonTenantId : (string)TenantId;} + {_principalType = If( json?.PropertyT("principalType"), out var __jsonPrincipalType) ? (string)__jsonPrincipalType : (string)PrincipalType;} + {_tenantName = If( json?.PropertyT("tenantName"), out var __jsonTenantName) ? (string)__jsonTenantName : (string)TenantName;} + {_principalName = If( json?.PropertyT("principalName"), out var __jsonPrincipalName) ? (string)__jsonPrincipalName : (string)PrincipalName;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_aadObjectId = If( json?.PropertyT("aadObjectId"), out var __jsonAadObjectId) ? (string)__jsonAadObjectId : (string)AadObjectId;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ClusterPrincipalProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._principalId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._principalId.ToString()) : null, "principalId" ,container.Add ); + AddIf( null != (((object)this._role)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._role.ToString()) : null, "role" ,container.Add ); + AddIf( null != (((object)this._tenantId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._tenantId.ToString()) : null, "tenantId" ,container.Add ); + AddIf( null != (((object)this._principalType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._principalType.ToString()) : null, "principalType" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._tenantName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._tenantName.ToString()) : null, "tenantName" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._principalName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._principalName.ToString()) : null, "principalName" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._aadObjectId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._aadObjectId.ToString()) : null, "aadObjectId" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterProperties.PowerShell.cs new file mode 100644 index 000000000000..405e68e2564d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterProperties.PowerShell.cs @@ -0,0 +1,422 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing the Kusto cluster properties. + [System.ComponentModel.TypeConverter(typeof(ClusterPropertiesTypeConverter))] + public partial class ClusterProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ClusterProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OptimizedAutoscale")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscale = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale) content.GetValueForProperty("OptimizedAutoscale",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscale, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OptimizedAutoscaleTypeConverter.ConvertFrom); + } + if (content.Contains("VirtualNetworkConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualNetworkConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration) content.GetValueForProperty("VirtualNetworkConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualNetworkConfiguration, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.VirtualNetworkConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("KeyVaultProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultProperty = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties) content.GetValueForProperty("KeyVaultProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultProperty, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.KeyVaultPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("LanguageExtension")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).LanguageExtension = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList) content.GetValueForProperty("LanguageExtension",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).LanguageExtension, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionsListTypeConverter.ConvertFrom); + } + if (content.Contains("State")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).State = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State?) content.GetValueForProperty("State",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).State, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).Uri, global::System.Convert.ToString); + } + if (content.Contains("DataIngestionUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).DataIngestionUri = (string) content.GetValueForProperty("DataIngestionUri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).DataIngestionUri, global::System.Convert.ToString); + } + if (content.Contains("StateReason")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).StateReason = (string) content.GetValueForProperty("StateReason",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).StateReason, global::System.Convert.ToString); + } + if (content.Contains("TrustedExternalTenant")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).TrustedExternalTenant = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[]) content.GetValueForProperty("TrustedExternalTenant",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).TrustedExternalTenant, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TrustedExternalTenantTypeConverter.ConvertFrom)); + } + if (content.Contains("EnableDiskEncryption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnableDiskEncryption = (bool?) content.GetValueForProperty("EnableDiskEncryption",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnableDiskEncryption, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnableStreamingIngest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnableStreamingIngest = (bool?) content.GetValueForProperty("EnableStreamingIngest",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnableStreamingIngest, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnablePurge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnablePurge = (bool?) content.GetValueForProperty("EnablePurge",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnablePurge, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnableDoubleEncryption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnableDoubleEncryption = (bool?) content.GetValueForProperty("EnableDoubleEncryption",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnableDoubleEncryption, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("AllowedIPRangeList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).AllowedIPRangeList = (string[]) content.GetValueForProperty("AllowedIPRangeList",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).AllowedIPRangeList, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("EngineType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EngineType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType?) content.GetValueForProperty("EngineType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EngineType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType.CreateFrom); + } + if (content.Contains("AcceptedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).AcceptedAudience = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[]) content.GetValueForProperty("AcceptedAudience",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).AcceptedAudience, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AcceptedAudiencesTypeConverter.ConvertFrom)); + } + if (content.Contains("EnableAutoStop")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnableAutoStop = (bool?) content.GetValueForProperty("EnableAutoStop",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnableAutoStop, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RestrictOutboundNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).RestrictOutboundNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag?) content.GetValueForProperty("RestrictOutboundNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).RestrictOutboundNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag.CreateFrom); + } + if (content.Contains("AllowedFqdnList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).AllowedFqdnList = (string[]) content.GetValueForProperty("AllowedFqdnList",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).AllowedFqdnList, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("PublicIPType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).PublicIPType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType?) content.GetValueForProperty("PublicIPType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).PublicIPType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType.CreateFrom); + } + if (content.Contains("VirtualClusterGraduationProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualClusterGraduationProperty = (string) content.GetValueForProperty("VirtualClusterGraduationProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualClusterGraduationProperty, global::System.Convert.ToString); + } + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("OptimizedAutoscaleVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscaleVersion = (int) content.GetValueForProperty("OptimizedAutoscaleVersion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscaleVersion, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("OptimizedAutoscaleMinimum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscaleMinimum = (int) content.GetValueForProperty("OptimizedAutoscaleMinimum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscaleMinimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("OptimizedAutoscaleMaximum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscaleMaximum = (int) content.GetValueForProperty("OptimizedAutoscaleMaximum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscaleMaximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("VirtualNetworkConfigurationSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualNetworkConfigurationSubnetId = (string) content.GetValueForProperty("VirtualNetworkConfigurationSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualNetworkConfigurationSubnetId, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultPropertyKeyName = (string) content.GetValueForProperty("KeyVaultPropertyKeyName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultPropertyKeyName, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultPropertyKeyVersion = (string) content.GetValueForProperty("KeyVaultPropertyKeyVersion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultPropertyKeyVersion, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyUserIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultPropertyUserIdentity = (string) content.GetValueForProperty("KeyVaultPropertyUserIdentity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultPropertyUserIdentity, global::System.Convert.ToString); + } + if (content.Contains("OptimizedAutoscaleIsEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscaleIsEnabled = (bool) content.GetValueForProperty("OptimizedAutoscaleIsEnabled",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscaleIsEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("VirtualNetworkConfigurationEnginePublicIPId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualNetworkConfigurationEnginePublicIPId = (string) content.GetValueForProperty("VirtualNetworkConfigurationEnginePublicIPId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualNetworkConfigurationEnginePublicIPId, global::System.Convert.ToString); + } + if (content.Contains("VirtualNetworkConfigurationDataManagementPublicIPId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualNetworkConfigurationDataManagementPublicIPId = (string) content.GetValueForProperty("VirtualNetworkConfigurationDataManagementPublicIPId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualNetworkConfigurationDataManagementPublicIPId, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyVaultUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultPropertyKeyVaultUri = (string) content.GetValueForProperty("KeyVaultPropertyKeyVaultUri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultPropertyKeyVaultUri, global::System.Convert.ToString); + } + if (content.Contains("LanguageExtensionValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).LanguageExtensionValue = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[]) content.GetValueForProperty("LanguageExtensionValue",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).LanguageExtensionValue, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ClusterProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OptimizedAutoscale")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscale = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale) content.GetValueForProperty("OptimizedAutoscale",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscale, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OptimizedAutoscaleTypeConverter.ConvertFrom); + } + if (content.Contains("VirtualNetworkConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualNetworkConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration) content.GetValueForProperty("VirtualNetworkConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualNetworkConfiguration, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.VirtualNetworkConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("KeyVaultProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultProperty = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties) content.GetValueForProperty("KeyVaultProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultProperty, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.KeyVaultPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("LanguageExtension")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).LanguageExtension = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList) content.GetValueForProperty("LanguageExtension",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).LanguageExtension, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionsListTypeConverter.ConvertFrom); + } + if (content.Contains("State")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).State = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State?) content.GetValueForProperty("State",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).State, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).Uri, global::System.Convert.ToString); + } + if (content.Contains("DataIngestionUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).DataIngestionUri = (string) content.GetValueForProperty("DataIngestionUri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).DataIngestionUri, global::System.Convert.ToString); + } + if (content.Contains("StateReason")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).StateReason = (string) content.GetValueForProperty("StateReason",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).StateReason, global::System.Convert.ToString); + } + if (content.Contains("TrustedExternalTenant")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).TrustedExternalTenant = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[]) content.GetValueForProperty("TrustedExternalTenant",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).TrustedExternalTenant, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TrustedExternalTenantTypeConverter.ConvertFrom)); + } + if (content.Contains("EnableDiskEncryption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnableDiskEncryption = (bool?) content.GetValueForProperty("EnableDiskEncryption",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnableDiskEncryption, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnableStreamingIngest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnableStreamingIngest = (bool?) content.GetValueForProperty("EnableStreamingIngest",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnableStreamingIngest, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnablePurge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnablePurge = (bool?) content.GetValueForProperty("EnablePurge",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnablePurge, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnableDoubleEncryption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnableDoubleEncryption = (bool?) content.GetValueForProperty("EnableDoubleEncryption",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnableDoubleEncryption, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("AllowedIPRangeList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).AllowedIPRangeList = (string[]) content.GetValueForProperty("AllowedIPRangeList",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).AllowedIPRangeList, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("EngineType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EngineType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType?) content.GetValueForProperty("EngineType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EngineType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType.CreateFrom); + } + if (content.Contains("AcceptedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).AcceptedAudience = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[]) content.GetValueForProperty("AcceptedAudience",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).AcceptedAudience, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AcceptedAudiencesTypeConverter.ConvertFrom)); + } + if (content.Contains("EnableAutoStop")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnableAutoStop = (bool?) content.GetValueForProperty("EnableAutoStop",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).EnableAutoStop, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RestrictOutboundNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).RestrictOutboundNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag?) content.GetValueForProperty("RestrictOutboundNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).RestrictOutboundNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag.CreateFrom); + } + if (content.Contains("AllowedFqdnList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).AllowedFqdnList = (string[]) content.GetValueForProperty("AllowedFqdnList",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).AllowedFqdnList, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("PublicIPType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).PublicIPType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType?) content.GetValueForProperty("PublicIPType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).PublicIPType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType.CreateFrom); + } + if (content.Contains("VirtualClusterGraduationProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualClusterGraduationProperty = (string) content.GetValueForProperty("VirtualClusterGraduationProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualClusterGraduationProperty, global::System.Convert.ToString); + } + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("OptimizedAutoscaleVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscaleVersion = (int) content.GetValueForProperty("OptimizedAutoscaleVersion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscaleVersion, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("OptimizedAutoscaleMinimum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscaleMinimum = (int) content.GetValueForProperty("OptimizedAutoscaleMinimum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscaleMinimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("OptimizedAutoscaleMaximum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscaleMaximum = (int) content.GetValueForProperty("OptimizedAutoscaleMaximum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscaleMaximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("VirtualNetworkConfigurationSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualNetworkConfigurationSubnetId = (string) content.GetValueForProperty("VirtualNetworkConfigurationSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualNetworkConfigurationSubnetId, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultPropertyKeyName = (string) content.GetValueForProperty("KeyVaultPropertyKeyName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultPropertyKeyName, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultPropertyKeyVersion = (string) content.GetValueForProperty("KeyVaultPropertyKeyVersion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultPropertyKeyVersion, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyUserIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultPropertyUserIdentity = (string) content.GetValueForProperty("KeyVaultPropertyUserIdentity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultPropertyUserIdentity, global::System.Convert.ToString); + } + if (content.Contains("OptimizedAutoscaleIsEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscaleIsEnabled = (bool) content.GetValueForProperty("OptimizedAutoscaleIsEnabled",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).OptimizedAutoscaleIsEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("VirtualNetworkConfigurationEnginePublicIPId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualNetworkConfigurationEnginePublicIPId = (string) content.GetValueForProperty("VirtualNetworkConfigurationEnginePublicIPId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualNetworkConfigurationEnginePublicIPId, global::System.Convert.ToString); + } + if (content.Contains("VirtualNetworkConfigurationDataManagementPublicIPId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualNetworkConfigurationDataManagementPublicIPId = (string) content.GetValueForProperty("VirtualNetworkConfigurationDataManagementPublicIPId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).VirtualNetworkConfigurationDataManagementPublicIPId, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyVaultUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultPropertyKeyVaultUri = (string) content.GetValueForProperty("KeyVaultPropertyKeyVaultUri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).KeyVaultPropertyKeyVaultUri, global::System.Convert.ToString); + } + if (content.Contains("LanguageExtensionValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).LanguageExtensionValue = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[]) content.GetValueForProperty("LanguageExtensionValue",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)this).LanguageExtensionValue, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ClusterProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ClusterProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing the Kusto cluster properties. + [System.ComponentModel.TypeConverter(typeof(ClusterPropertiesTypeConverter))] + public partial interface IClusterProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterProperties.TypeConverter.cs new file mode 100644 index 000000000000..82b29d45bb04 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ClusterPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ClusterProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ClusterProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ClusterProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterProperties.cs new file mode 100644 index 000000000000..13ef06bae8fd --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterProperties.cs @@ -0,0 +1,644 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing the Kusto cluster properties. + public partial class ClusterProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[] _acceptedAudience; + + /// The cluster's accepted audiences. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[] AcceptedAudience { get => this._acceptedAudience; set => this._acceptedAudience = value; } + + /// Backing field for property. + private string[] _allowedFqdnList; + + /// List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string[] AllowedFqdnList { get => this._allowedFqdnList; set => this._allowedFqdnList = value; } + + /// Backing field for property. + private string[] _allowedIPRangeList; + + /// The list of ips in the format of CIDR allowed to connect to the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string[] AllowedIPRangeList { get => this._allowedIPRangeList; set => this._allowedIPRangeList = value; } + + /// Backing field for property. + private string _dataIngestionUri; + + /// The cluster data ingestion URI. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string DataIngestionUri { get => this._dataIngestionUri; } + + /// Backing field for property. + private bool? _enableAutoStop; + + /// + /// A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many + /// days). + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public bool? EnableAutoStop { get => this._enableAutoStop; set => this._enableAutoStop = value; } + + /// Backing field for property. + private bool? _enableDiskEncryption; + + /// A boolean value that indicates if the cluster's disks are encrypted. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public bool? EnableDiskEncryption { get => this._enableDiskEncryption; set => this._enableDiskEncryption = value; } + + /// Backing field for property. + private bool? _enableDoubleEncryption; + + /// A boolean value that indicates if double encryption is enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public bool? EnableDoubleEncryption { get => this._enableDoubleEncryption; set => this._enableDoubleEncryption = value; } + + /// Backing field for property. + private bool? _enablePurge; + + /// A boolean value that indicates if the purge operations are enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public bool? EnablePurge { get => this._enablePurge; set => this._enablePurge = value; } + + /// Backing field for property. + private bool? _enableStreamingIngest; + + /// A boolean value that indicates if the streaming ingest is enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public bool? EnableStreamingIngest { get => this._enableStreamingIngest; set => this._enableStreamingIngest = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType? _engineType; + + /// The engine type + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType? EngineType { get => this._engineType; set => this._engineType = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties _keyVaultProperty; + + /// KeyVault properties for the cluster encryption. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties KeyVaultProperty { get => (this._keyVaultProperty = this._keyVaultProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.KeyVaultProperties()); set => this._keyVaultProperty = value; } + + /// The name of the key vault key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string KeyVaultPropertyKeyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)KeyVaultProperty).KeyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)KeyVaultProperty).KeyName = value ?? null; } + + /// The Uri of the key vault. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string KeyVaultPropertyKeyVaultUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)KeyVaultProperty).KeyVaultUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)KeyVaultProperty).KeyVaultUri = value ?? null; } + + /// The version of the key vault key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string KeyVaultPropertyKeyVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)KeyVaultProperty).KeyVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)KeyVaultProperty).KeyVersion = value ?? null; } + + /// The user assigned identity (ARM resource id) that has access to the key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string KeyVaultPropertyUserIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)KeyVaultProperty).UserIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)KeyVaultProperty).UserIdentity = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList _languageExtension; + + /// List of the cluster's language extensions. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList LanguageExtension { get => (this._languageExtension = this._languageExtension ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionsList()); } + + /// The list of language extensions. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] LanguageExtensionValue { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsListInternal)LanguageExtension).Value; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsListInternal)LanguageExtension).Value = value ?? null /* arrayOf */; } + + /// Internal Acessors for DataIngestionUri + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal.DataIngestionUri { get => this._dataIngestionUri; set { {_dataIngestionUri = value;} } } + + /// Internal Acessors for KeyVaultProperty + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal.KeyVaultProperty { get => (this._keyVaultProperty = this._keyVaultProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.KeyVaultProperties()); set { {_keyVaultProperty = value;} } } + + /// Internal Acessors for LanguageExtension + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal.LanguageExtension { get => (this._languageExtension = this._languageExtension ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionsList()); set { {_languageExtension = value;} } } + + /// Internal Acessors for OptimizedAutoscale + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal.OptimizedAutoscale { get => (this._optimizedAutoscale = this._optimizedAutoscale ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OptimizedAutoscale()); set { {_optimizedAutoscale = value;} } } + + /// Internal Acessors for PrivateEndpointConnection + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[] Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal.PrivateEndpointConnection { get => this._privateEndpointConnection; set { {_privateEndpointConnection = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for State + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal.State { get => this._state; set { {_state = value;} } } + + /// Internal Acessors for StateReason + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal.StateReason { get => this._stateReason; set { {_stateReason = value;} } } + + /// Internal Acessors for Uri + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal.Uri { get => this._uri; set { {_uri = value;} } } + + /// Internal Acessors for VirtualNetworkConfiguration + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal.VirtualNetworkConfiguration { get => (this._virtualNetworkConfiguration = this._virtualNetworkConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.VirtualNetworkConfiguration()); set { {_virtualNetworkConfiguration = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale _optimizedAutoscale; + + /// Optimized auto scale definition. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale OptimizedAutoscale { get => (this._optimizedAutoscale = this._optimizedAutoscale ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OptimizedAutoscale()); set => this._optimizedAutoscale = value; } + + /// + /// A boolean value that indicate if the optimized autoscale feature is enabled or not. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public bool? OptimizedAutoscaleIsEnabled { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)OptimizedAutoscale).IsEnabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)OptimizedAutoscale).IsEnabled = value ?? default(bool); } + + /// Maximum allowed instances count. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public int? OptimizedAutoscaleMaximum { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)OptimizedAutoscale).Maximum; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)OptimizedAutoscale).Maximum = value ?? default(int); } + + /// Minimum allowed instances count. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public int? OptimizedAutoscaleMinimum { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)OptimizedAutoscale).Minimum; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)OptimizedAutoscale).Minimum = value ?? default(int); } + + /// The version of the template defined, for instance 1. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public int? OptimizedAutoscaleVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)OptimizedAutoscale).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)OptimizedAutoscale).Version = value ?? default(int); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[] _privateEndpointConnection; + + /// A list of private endpoint connections. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[] PrivateEndpointConnection { get => this._privateEndpointConnection; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? _provisioningState; + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType? _publicIPType; + + /// + /// Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType? PublicIPType { get => this._publicIPType; set => this._publicIPType = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess? _publicNetworkAccess; + + /// + /// Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster + /// is allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess? PublicNetworkAccess { get => this._publicNetworkAccess; set => this._publicNetworkAccess = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag? _restrictOutboundNetworkAccess; + + /// + /// Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled' + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag? RestrictOutboundNetworkAccess { get => this._restrictOutboundNetworkAccess; set => this._restrictOutboundNetworkAccess = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State? _state; + + /// The state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State? State { get => this._state; } + + /// Backing field for property. + private string _stateReason; + + /// The reason for the cluster's current state. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string StateReason { get => this._stateReason; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[] _trustedExternalTenant; + + /// The cluster's external tenants. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[] TrustedExternalTenant { get => this._trustedExternalTenant; set => this._trustedExternalTenant = value; } + + /// Backing field for property. + private string _uri; + + /// The cluster URI. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Uri { get => this._uri; } + + /// Backing field for property. + private string _virtualClusterGraduationProperty; + + /// Virtual Cluster graduation properties + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string VirtualClusterGraduationProperty { get => this._virtualClusterGraduationProperty; set => this._virtualClusterGraduationProperty = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration _virtualNetworkConfiguration; + + /// Virtual network definition. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration VirtualNetworkConfiguration { get => (this._virtualNetworkConfiguration = this._virtualNetworkConfiguration ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.VirtualNetworkConfiguration()); set => this._virtualNetworkConfiguration = value; } + + /// Data management's service public IP address resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string VirtualNetworkConfigurationDataManagementPublicIPId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)VirtualNetworkConfiguration).DataManagementPublicIPId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)VirtualNetworkConfiguration).DataManagementPublicIPId = value ?? null; } + + /// Engine service's public IP address resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string VirtualNetworkConfigurationEnginePublicIPId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)VirtualNetworkConfiguration).EnginePublicIPId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)VirtualNetworkConfiguration).EnginePublicIPId = value ?? null; } + + /// The subnet resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string VirtualNetworkConfigurationSubnetId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)VirtualNetworkConfiguration).SubnetId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)VirtualNetworkConfiguration).SubnetId = value ?? null; } + + /// Creates an new instance. + public ClusterProperties() + { + + } + } + /// Class representing the Kusto cluster properties. + public partial interface IClusterProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The cluster's accepted audiences. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The cluster's accepted audiences.", + SerializedName = @"acceptedAudiences", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[] AcceptedAudience { get; set; } + /// List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster.", + SerializedName = @"allowedFqdnList", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedFqdnList { get; set; } + /// The list of ips in the format of CIDR allowed to connect to the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of ips in the format of CIDR allowed to connect to the cluster.", + SerializedName = @"allowedIpRangeList", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedIPRangeList { get; set; } + /// The cluster data ingestion URI. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The cluster data ingestion URI.", + SerializedName = @"dataIngestionUri", + PossibleTypes = new [] { typeof(string) })] + string DataIngestionUri { get; } + /// + /// A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many + /// days). + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days).", + SerializedName = @"enableAutoStop", + PossibleTypes = new [] { typeof(bool) })] + bool? EnableAutoStop { get; set; } + /// A boolean value that indicates if the cluster's disks are encrypted. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the cluster's disks are encrypted.", + SerializedName = @"enableDiskEncryption", + PossibleTypes = new [] { typeof(bool) })] + bool? EnableDiskEncryption { get; set; } + /// A boolean value that indicates if double encryption is enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if double encryption is enabled.", + SerializedName = @"enableDoubleEncryption", + PossibleTypes = new [] { typeof(bool) })] + bool? EnableDoubleEncryption { get; set; } + /// A boolean value that indicates if the purge operations are enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the purge operations are enabled.", + SerializedName = @"enablePurge", + PossibleTypes = new [] { typeof(bool) })] + bool? EnablePurge { get; set; } + /// A boolean value that indicates if the streaming ingest is enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the streaming ingest is enabled.", + SerializedName = @"enableStreamingIngest", + PossibleTypes = new [] { typeof(bool) })] + bool? EnableStreamingIngest { get; set; } + /// The engine type + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The engine type", + SerializedName = @"engineType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType? EngineType { get; set; } + /// The name of the key vault key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the key vault key.", + SerializedName = @"keyName", + PossibleTypes = new [] { typeof(string) })] + string KeyVaultPropertyKeyName { get; set; } + /// The Uri of the key vault. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Uri of the key vault.", + SerializedName = @"keyVaultUri", + PossibleTypes = new [] { typeof(string) })] + string KeyVaultPropertyKeyVaultUri { get; set; } + /// The version of the key vault key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the key vault key.", + SerializedName = @"keyVersion", + PossibleTypes = new [] { typeof(string) })] + string KeyVaultPropertyKeyVersion { get; set; } + /// The user assigned identity (ARM resource id) that has access to the key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user assigned identity (ARM resource id) that has access to the key.", + SerializedName = @"userIdentity", + PossibleTypes = new [] { typeof(string) })] + string KeyVaultPropertyUserIdentity { get; set; } + /// The list of language extensions. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of language extensions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] LanguageExtensionValue { get; set; } + /// + /// A boolean value that indicate if the optimized autoscale feature is enabled or not. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicate if the optimized autoscale feature is enabled or not.", + SerializedName = @"isEnabled", + PossibleTypes = new [] { typeof(bool) })] + bool? OptimizedAutoscaleIsEnabled { get; set; } + /// Maximum allowed instances count. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum allowed instances count.", + SerializedName = @"maximum", + PossibleTypes = new [] { typeof(int) })] + int? OptimizedAutoscaleMaximum { get; set; } + /// Minimum allowed instances count. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum allowed instances count.", + SerializedName = @"minimum", + PossibleTypes = new [] { typeof(int) })] + int? OptimizedAutoscaleMinimum { get; set; } + /// The version of the template defined, for instance 1. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the template defined, for instance 1.", + SerializedName = @"version", + PossibleTypes = new [] { typeof(int) })] + int? OptimizedAutoscaleVersion { get; set; } + /// A list of private endpoint connections. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"A list of private endpoint connections.", + SerializedName = @"privateEndpointConnections", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[] PrivateEndpointConnection { get; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// + /// Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6)", + SerializedName = @"publicIPType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType? PublicIPType { get; set; } + /// + /// Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster + /// is allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster is allowed", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// + /// Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled' + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled'", + SerializedName = @"restrictOutboundNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag? RestrictOutboundNetworkAccess { get; set; } + /// The state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The state of the resource.", + SerializedName = @"state", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State? State { get; } + /// The reason for the cluster's current state. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The reason for the cluster's current state.", + SerializedName = @"stateReason", + PossibleTypes = new [] { typeof(string) })] + string StateReason { get; } + /// The cluster's external tenants. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The cluster's external tenants.", + SerializedName = @"trustedExternalTenants", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[] TrustedExternalTenant { get; set; } + /// The cluster URI. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The cluster URI.", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + string Uri { get; } + /// Virtual Cluster graduation properties + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Virtual Cluster graduation properties", + SerializedName = @"virtualClusterGraduationProperties", + PossibleTypes = new [] { typeof(string) })] + string VirtualClusterGraduationProperty { get; set; } + /// Data management's service public IP address resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Data management's service public IP address resource id.", + SerializedName = @"dataManagementPublicIpId", + PossibleTypes = new [] { typeof(string) })] + string VirtualNetworkConfigurationDataManagementPublicIPId { get; set; } + /// Engine service's public IP address resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Engine service's public IP address resource id.", + SerializedName = @"enginePublicIpId", + PossibleTypes = new [] { typeof(string) })] + string VirtualNetworkConfigurationEnginePublicIPId { get; set; } + /// The subnet resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The subnet resource id.", + SerializedName = @"subnetId", + PossibleTypes = new [] { typeof(string) })] + string VirtualNetworkConfigurationSubnetId { get; set; } + + } + /// Class representing the Kusto cluster properties. + internal partial interface IClusterPropertiesInternal + + { + /// The cluster's accepted audiences. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[] AcceptedAudience { get; set; } + /// List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + string[] AllowedFqdnList { get; set; } + /// The list of ips in the format of CIDR allowed to connect to the cluster. + string[] AllowedIPRangeList { get; set; } + /// The cluster data ingestion URI. + string DataIngestionUri { get; set; } + /// + /// A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many + /// days). + /// + bool? EnableAutoStop { get; set; } + /// A boolean value that indicates if the cluster's disks are encrypted. + bool? EnableDiskEncryption { get; set; } + /// A boolean value that indicates if double encryption is enabled. + bool? EnableDoubleEncryption { get; set; } + /// A boolean value that indicates if the purge operations are enabled. + bool? EnablePurge { get; set; } + /// A boolean value that indicates if the streaming ingest is enabled. + bool? EnableStreamingIngest { get; set; } + /// The engine type + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType? EngineType { get; set; } + /// KeyVault properties for the cluster encryption. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties KeyVaultProperty { get; set; } + /// The name of the key vault key. + string KeyVaultPropertyKeyName { get; set; } + /// The Uri of the key vault. + string KeyVaultPropertyKeyVaultUri { get; set; } + /// The version of the key vault key. + string KeyVaultPropertyKeyVersion { get; set; } + /// The user assigned identity (ARM resource id) that has access to the key. + string KeyVaultPropertyUserIdentity { get; set; } + /// List of the cluster's language extensions. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList LanguageExtension { get; set; } + /// The list of language extensions. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] LanguageExtensionValue { get; set; } + /// Optimized auto scale definition. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale OptimizedAutoscale { get; set; } + /// + /// A boolean value that indicate if the optimized autoscale feature is enabled or not. + /// + bool? OptimizedAutoscaleIsEnabled { get; set; } + /// Maximum allowed instances count. + int? OptimizedAutoscaleMaximum { get; set; } + /// Minimum allowed instances count. + int? OptimizedAutoscaleMinimum { get; set; } + /// The version of the template defined, for instance 1. + int? OptimizedAutoscaleVersion { get; set; } + /// A list of private endpoint connections. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[] PrivateEndpointConnection { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// + /// Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType? PublicIPType { get; set; } + /// + /// Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster + /// is allowed + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// + /// Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled' + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag? RestrictOutboundNetworkAccess { get; set; } + /// The state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State? State { get; set; } + /// The reason for the cluster's current state. + string StateReason { get; set; } + /// The cluster's external tenants. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[] TrustedExternalTenant { get; set; } + /// The cluster URI. + string Uri { get; set; } + /// Virtual Cluster graduation properties + string VirtualClusterGraduationProperty { get; set; } + /// Virtual network definition. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration VirtualNetworkConfiguration { get; set; } + /// Data management's service public IP address resource id. + string VirtualNetworkConfigurationDataManagementPublicIPId { get; set; } + /// Engine service's public IP address resource id. + string VirtualNetworkConfigurationEnginePublicIPId { get; set; } + /// The subnet resource id. + string VirtualNetworkConfigurationSubnetId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterProperties.json.cs new file mode 100644 index 000000000000..907c90a6b802 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterProperties.json.cs @@ -0,0 +1,213 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing the Kusto cluster properties. + public partial class ClusterProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ClusterProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_optimizedAutoscale = If( json?.PropertyT("optimizedAutoscale"), out var __jsonOptimizedAutoscale) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OptimizedAutoscale.FromJson(__jsonOptimizedAutoscale) : OptimizedAutoscale;} + {_virtualNetworkConfiguration = If( json?.PropertyT("virtualNetworkConfiguration"), out var __jsonVirtualNetworkConfiguration) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.VirtualNetworkConfiguration.FromJson(__jsonVirtualNetworkConfiguration) : VirtualNetworkConfiguration;} + {_keyVaultProperty = If( json?.PropertyT("keyVaultProperties"), out var __jsonKeyVaultProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.KeyVaultProperties.FromJson(__jsonKeyVaultProperties) : KeyVaultProperty;} + {_languageExtension = If( json?.PropertyT("languageExtensions"), out var __jsonLanguageExtensions) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionsList.FromJson(__jsonLanguageExtensions) : LanguageExtension;} + {_state = If( json?.PropertyT("state"), out var __jsonState) ? (string)__jsonState : (string)State;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_uri = If( json?.PropertyT("uri"), out var __jsonUri) ? (string)__jsonUri : (string)Uri;} + {_dataIngestionUri = If( json?.PropertyT("dataIngestionUri"), out var __jsonDataIngestionUri) ? (string)__jsonDataIngestionUri : (string)DataIngestionUri;} + {_stateReason = If( json?.PropertyT("stateReason"), out var __jsonStateReason) ? (string)__jsonStateReason : (string)StateReason;} + {_trustedExternalTenant = If( json?.PropertyT("trustedExternalTenants"), out var __jsonTrustedExternalTenants) ? If( __jsonTrustedExternalTenants as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TrustedExternalTenant.FromJson(__u) )) ))() : null : TrustedExternalTenant;} + {_enableDiskEncryption = If( json?.PropertyT("enableDiskEncryption"), out var __jsonEnableDiskEncryption) ? (bool?)__jsonEnableDiskEncryption : EnableDiskEncryption;} + {_enableStreamingIngest = If( json?.PropertyT("enableStreamingIngest"), out var __jsonEnableStreamingIngest) ? (bool?)__jsonEnableStreamingIngest : EnableStreamingIngest;} + {_enablePurge = If( json?.PropertyT("enablePurge"), out var __jsonEnablePurge) ? (bool?)__jsonEnablePurge : EnablePurge;} + {_enableDoubleEncryption = If( json?.PropertyT("enableDoubleEncryption"), out var __jsonEnableDoubleEncryption) ? (bool?)__jsonEnableDoubleEncryption : EnableDoubleEncryption;} + {_publicNetworkAccess = If( json?.PropertyT("publicNetworkAccess"), out var __jsonPublicNetworkAccess) ? (string)__jsonPublicNetworkAccess : (string)PublicNetworkAccess;} + {_allowedIPRangeList = If( json?.PropertyT("allowedIpRangeList"), out var __jsonAllowedIPRangeList) ? If( __jsonAllowedIPRangeList as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __q) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__q, (__p)=>(string) (__p is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : AllowedIPRangeList;} + {_engineType = If( json?.PropertyT("engineType"), out var __jsonEngineType) ? (string)__jsonEngineType : (string)EngineType;} + {_acceptedAudience = If( json?.PropertyT("acceptedAudiences"), out var __jsonAcceptedAudiences) ? If( __jsonAcceptedAudiences as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __l) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__l, (__k)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AcceptedAudiences.FromJson(__k) )) ))() : null : AcceptedAudience;} + {_enableAutoStop = If( json?.PropertyT("enableAutoStop"), out var __jsonEnableAutoStop) ? (bool?)__jsonEnableAutoStop : EnableAutoStop;} + {_restrictOutboundNetworkAccess = If( json?.PropertyT("restrictOutboundNetworkAccess"), out var __jsonRestrictOutboundNetworkAccess) ? (string)__jsonRestrictOutboundNetworkAccess : (string)RestrictOutboundNetworkAccess;} + {_allowedFqdnList = If( json?.PropertyT("allowedFqdnList"), out var __jsonAllowedFqdnList) ? If( __jsonAllowedFqdnList as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __g) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__g, (__f)=>(string) (__f is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString __e ? (string)(__e.ToString()) : null)) ))() : null : AllowedFqdnList;} + {_publicIPType = If( json?.PropertyT("publicIPType"), out var __jsonPublicIPType) ? (string)__jsonPublicIPType : (string)PublicIPType;} + {_virtualClusterGraduationProperty = If( json?.PropertyT("virtualClusterGraduationProperties"), out var __jsonVirtualClusterGraduationProperties) ? (string)__jsonVirtualClusterGraduationProperties : (string)VirtualClusterGraduationProperty;} + {_privateEndpointConnection = If( json?.PropertyT("privateEndpointConnections"), out var __jsonPrivateEndpointConnections) ? If( __jsonPrivateEndpointConnections as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __b) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__b, (__a)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnection.FromJson(__a) )) ))() : null : PrivateEndpointConnection;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ClusterProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._optimizedAutoscale ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._optimizedAutoscale.ToJson(null,serializationMode) : null, "optimizedAutoscale" ,container.Add ); + AddIf( null != this._virtualNetworkConfiguration ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._virtualNetworkConfiguration.ToJson(null,serializationMode) : null, "virtualNetworkConfiguration" ,container.Add ); + AddIf( null != this._keyVaultProperty ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._keyVaultProperty.ToJson(null,serializationMode) : null, "keyVaultProperties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._languageExtension ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._languageExtension.ToJson(null,serializationMode) : null, "languageExtensions" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._state)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._state.ToString()) : null, "state" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._uri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._uri.ToString()) : null, "uri" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._dataIngestionUri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._dataIngestionUri.ToString()) : null, "dataIngestionUri" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._stateReason)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._stateReason.ToString()) : null, "stateReason" ,container.Add ); + } + if (null != this._trustedExternalTenant) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._trustedExternalTenant ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("trustedExternalTenants",__w); + } + AddIf( null != this._enableDiskEncryption ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonBoolean((bool)this._enableDiskEncryption) : null, "enableDiskEncryption" ,container.Add ); + AddIf( null != this._enableStreamingIngest ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonBoolean((bool)this._enableStreamingIngest) : null, "enableStreamingIngest" ,container.Add ); + AddIf( null != this._enablePurge ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonBoolean((bool)this._enablePurge) : null, "enablePurge" ,container.Add ); + AddIf( null != this._enableDoubleEncryption ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonBoolean((bool)this._enableDoubleEncryption) : null, "enableDoubleEncryption" ,container.Add ); + AddIf( null != (((object)this._publicNetworkAccess)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._publicNetworkAccess.ToString()) : null, "publicNetworkAccess" ,container.Add ); + if (null != this._allowedIPRangeList) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __s in this._allowedIPRangeList ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("allowedIpRangeList",__r); + } + AddIf( null != (((object)this._engineType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._engineType.ToString()) : null, "engineType" ,container.Add ); + if (null != this._acceptedAudience) + { + var __m = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __n in this._acceptedAudience ) + { + AddIf(__n?.ToJson(null, serializationMode) ,__m.Add); + } + container.Add("acceptedAudiences",__m); + } + AddIf( null != this._enableAutoStop ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonBoolean((bool)this._enableAutoStop) : null, "enableAutoStop" ,container.Add ); + AddIf( null != (((object)this._restrictOutboundNetworkAccess)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._restrictOutboundNetworkAccess.ToString()) : null, "restrictOutboundNetworkAccess" ,container.Add ); + if (null != this._allowedFqdnList) + { + var __h = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __i in this._allowedFqdnList ) + { + AddIf(null != (((object)__i)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(__i.ToString()) : null ,__h.Add); + } + container.Add("allowedFqdnList",__h); + } + AddIf( null != (((object)this._publicIPType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._publicIPType.ToString()) : null, "publicIPType" ,container.Add ); + AddIf( null != (((object)this._virtualClusterGraduationProperty)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._virtualClusterGraduationProperty.ToString()) : null, "virtualClusterGraduationProperties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._privateEndpointConnection) + { + var __c = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __d in this._privateEndpointConnection ) + { + AddIf(__d?.ToJson(null, serializationMode) ,__c.Add); + } + container.Add("privateEndpointConnections",__c); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdate.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdate.PowerShell.cs new file mode 100644 index 000000000000..6c2ccadcdcc9 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdate.PowerShell.cs @@ -0,0 +1,542 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing an update to a Kusto cluster. + [System.ComponentModel.TypeConverter(typeof(ClusterUpdateTypeConverter))] + public partial class ClusterUpdate + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ClusterUpdate(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureSkuTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterUpdateTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType.CreateFrom); + } + if (content.Contains("OptimizedAutoscale")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscale = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale) content.GetValueForProperty("OptimizedAutoscale",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscale, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OptimizedAutoscaleTypeConverter.ConvertFrom); + } + if (content.Contains("State")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).State = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State?) content.GetValueForProperty("State",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).State, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("EngineType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EngineType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType?) content.GetValueForProperty("EngineType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EngineType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType.CreateFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).SkuName = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).SkuName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName.CreateFrom); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).SkuTier = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).SkuTier, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier.CreateFrom); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IdentityUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + if (content.Contains("VirtualNetworkConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualNetworkConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration) content.GetValueForProperty("VirtualNetworkConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualNetworkConfiguration, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.VirtualNetworkConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("KeyVaultProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultProperty = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties) content.GetValueForProperty("KeyVaultProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultProperty, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.KeyVaultPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("LanguageExtension")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).LanguageExtension = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList) content.GetValueForProperty("LanguageExtension",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).LanguageExtension, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionsListTypeConverter.ConvertFrom); + } + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Uri, global::System.Convert.ToString); + } + if (content.Contains("DataIngestionUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).DataIngestionUri = (string) content.GetValueForProperty("DataIngestionUri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).DataIngestionUri, global::System.Convert.ToString); + } + if (content.Contains("StateReason")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).StateReason = (string) content.GetValueForProperty("StateReason",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).StateReason, global::System.Convert.ToString); + } + if (content.Contains("TrustedExternalTenant")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).TrustedExternalTenant = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[]) content.GetValueForProperty("TrustedExternalTenant",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).TrustedExternalTenant, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TrustedExternalTenantTypeConverter.ConvertFrom)); + } + if (content.Contains("EnableDiskEncryption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnableDiskEncryption = (bool?) content.GetValueForProperty("EnableDiskEncryption",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnableDiskEncryption, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnableStreamingIngest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnableStreamingIngest = (bool?) content.GetValueForProperty("EnableStreamingIngest",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnableStreamingIngest, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnablePurge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnablePurge = (bool?) content.GetValueForProperty("EnablePurge",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnablePurge, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnableDoubleEncryption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnableDoubleEncryption = (bool?) content.GetValueForProperty("EnableDoubleEncryption",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnableDoubleEncryption, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("AllowedIPRangeList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).AllowedIPRangeList = (string[]) content.GetValueForProperty("AllowedIPRangeList",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).AllowedIPRangeList, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AcceptedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).AcceptedAudience = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[]) content.GetValueForProperty("AcceptedAudience",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).AcceptedAudience, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AcceptedAudiencesTypeConverter.ConvertFrom)); + } + if (content.Contains("EnableAutoStop")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnableAutoStop = (bool?) content.GetValueForProperty("EnableAutoStop",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnableAutoStop, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RestrictOutboundNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).RestrictOutboundNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag?) content.GetValueForProperty("RestrictOutboundNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).RestrictOutboundNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag.CreateFrom); + } + if (content.Contains("AllowedFqdnList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).AllowedFqdnList = (string[]) content.GetValueForProperty("AllowedFqdnList",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).AllowedFqdnList, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("PublicIPType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).PublicIPType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType?) content.GetValueForProperty("PublicIPType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).PublicIPType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType.CreateFrom); + } + if (content.Contains("VirtualClusterGraduationProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualClusterGraduationProperty = (string) content.GetValueForProperty("VirtualClusterGraduationProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualClusterGraduationProperty, global::System.Convert.ToString); + } + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("OptimizedAutoscaleVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscaleVersion = (int) content.GetValueForProperty("OptimizedAutoscaleVersion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscaleVersion, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("OptimizedAutoscaleMinimum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscaleMinimum = (int) content.GetValueForProperty("OptimizedAutoscaleMinimum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscaleMinimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("OptimizedAutoscaleMaximum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscaleMaximum = (int) content.GetValueForProperty("OptimizedAutoscaleMaximum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscaleMaximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("VirtualNetworkConfigurationSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualNetworkConfigurationSubnetId = (string) content.GetValueForProperty("VirtualNetworkConfigurationSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualNetworkConfigurationSubnetId, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultPropertyKeyName = (string) content.GetValueForProperty("KeyVaultPropertyKeyName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultPropertyKeyName, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultPropertyKeyVersion = (string) content.GetValueForProperty("KeyVaultPropertyKeyVersion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultPropertyKeyVersion, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyUserIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultPropertyUserIdentity = (string) content.GetValueForProperty("KeyVaultPropertyUserIdentity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultPropertyUserIdentity, global::System.Convert.ToString); + } + if (content.Contains("OptimizedAutoscaleIsEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscaleIsEnabled = (bool) content.GetValueForProperty("OptimizedAutoscaleIsEnabled",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscaleIsEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("VirtualNetworkConfigurationEnginePublicIPId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualNetworkConfigurationEnginePublicIPId = (string) content.GetValueForProperty("VirtualNetworkConfigurationEnginePublicIPId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualNetworkConfigurationEnginePublicIPId, global::System.Convert.ToString); + } + if (content.Contains("VirtualNetworkConfigurationDataManagementPublicIPId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualNetworkConfigurationDataManagementPublicIPId = (string) content.GetValueForProperty("VirtualNetworkConfigurationDataManagementPublicIPId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualNetworkConfigurationDataManagementPublicIPId, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyVaultUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultPropertyKeyVaultUri = (string) content.GetValueForProperty("KeyVaultPropertyKeyVaultUri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultPropertyKeyVaultUri, global::System.Convert.ToString); + } + if (content.Contains("LanguageExtensionValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).LanguageExtensionValue = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[]) content.GetValueForProperty("LanguageExtensionValue",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).LanguageExtensionValue, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ClusterUpdate(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureSkuTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterUpdateTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType.CreateFrom); + } + if (content.Contains("OptimizedAutoscale")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscale = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale) content.GetValueForProperty("OptimizedAutoscale",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscale, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OptimizedAutoscaleTypeConverter.ConvertFrom); + } + if (content.Contains("State")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).State = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State?) content.GetValueForProperty("State",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).State, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("EngineType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EngineType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType?) content.GetValueForProperty("EngineType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EngineType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType.CreateFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).SkuName = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).SkuName, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName.CreateFrom); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).SkuTier = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).SkuTier, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier.CreateFrom); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IdentityUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + if (content.Contains("VirtualNetworkConfiguration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualNetworkConfiguration = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration) content.GetValueForProperty("VirtualNetworkConfiguration",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualNetworkConfiguration, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.VirtualNetworkConfigurationTypeConverter.ConvertFrom); + } + if (content.Contains("KeyVaultProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultProperty = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties) content.GetValueForProperty("KeyVaultProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultProperty, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.KeyVaultPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("LanguageExtension")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).LanguageExtension = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList) content.GetValueForProperty("LanguageExtension",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).LanguageExtension, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionsListTypeConverter.ConvertFrom); + } + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).Uri, global::System.Convert.ToString); + } + if (content.Contains("DataIngestionUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).DataIngestionUri = (string) content.GetValueForProperty("DataIngestionUri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).DataIngestionUri, global::System.Convert.ToString); + } + if (content.Contains("StateReason")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).StateReason = (string) content.GetValueForProperty("StateReason",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).StateReason, global::System.Convert.ToString); + } + if (content.Contains("TrustedExternalTenant")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).TrustedExternalTenant = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[]) content.GetValueForProperty("TrustedExternalTenant",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).TrustedExternalTenant, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.TrustedExternalTenantTypeConverter.ConvertFrom)); + } + if (content.Contains("EnableDiskEncryption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnableDiskEncryption = (bool?) content.GetValueForProperty("EnableDiskEncryption",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnableDiskEncryption, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnableStreamingIngest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnableStreamingIngest = (bool?) content.GetValueForProperty("EnableStreamingIngest",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnableStreamingIngest, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnablePurge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnablePurge = (bool?) content.GetValueForProperty("EnablePurge",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnablePurge, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnableDoubleEncryption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnableDoubleEncryption = (bool?) content.GetValueForProperty("EnableDoubleEncryption",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnableDoubleEncryption, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("AllowedIPRangeList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).AllowedIPRangeList = (string[]) content.GetValueForProperty("AllowedIPRangeList",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).AllowedIPRangeList, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AcceptedAudience")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).AcceptedAudience = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[]) content.GetValueForProperty("AcceptedAudience",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).AcceptedAudience, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AcceptedAudiencesTypeConverter.ConvertFrom)); + } + if (content.Contains("EnableAutoStop")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnableAutoStop = (bool?) content.GetValueForProperty("EnableAutoStop",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).EnableAutoStop, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("RestrictOutboundNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).RestrictOutboundNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag?) content.GetValueForProperty("RestrictOutboundNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).RestrictOutboundNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag.CreateFrom); + } + if (content.Contains("AllowedFqdnList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).AllowedFqdnList = (string[]) content.GetValueForProperty("AllowedFqdnList",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).AllowedFqdnList, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("PublicIPType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).PublicIPType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType?) content.GetValueForProperty("PublicIPType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).PublicIPType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType.CreateFrom); + } + if (content.Contains("VirtualClusterGraduationProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualClusterGraduationProperty = (string) content.GetValueForProperty("VirtualClusterGraduationProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualClusterGraduationProperty, global::System.Convert.ToString); + } + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("OptimizedAutoscaleVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscaleVersion = (int) content.GetValueForProperty("OptimizedAutoscaleVersion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscaleVersion, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("OptimizedAutoscaleMinimum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscaleMinimum = (int) content.GetValueForProperty("OptimizedAutoscaleMinimum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscaleMinimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("OptimizedAutoscaleMaximum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscaleMaximum = (int) content.GetValueForProperty("OptimizedAutoscaleMaximum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscaleMaximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("VirtualNetworkConfigurationSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualNetworkConfigurationSubnetId = (string) content.GetValueForProperty("VirtualNetworkConfigurationSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualNetworkConfigurationSubnetId, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultPropertyKeyName = (string) content.GetValueForProperty("KeyVaultPropertyKeyName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultPropertyKeyName, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultPropertyKeyVersion = (string) content.GetValueForProperty("KeyVaultPropertyKeyVersion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultPropertyKeyVersion, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyUserIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultPropertyUserIdentity = (string) content.GetValueForProperty("KeyVaultPropertyUserIdentity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultPropertyUserIdentity, global::System.Convert.ToString); + } + if (content.Contains("OptimizedAutoscaleIsEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscaleIsEnabled = (bool) content.GetValueForProperty("OptimizedAutoscaleIsEnabled",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).OptimizedAutoscaleIsEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("VirtualNetworkConfigurationEnginePublicIPId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualNetworkConfigurationEnginePublicIPId = (string) content.GetValueForProperty("VirtualNetworkConfigurationEnginePublicIPId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualNetworkConfigurationEnginePublicIPId, global::System.Convert.ToString); + } + if (content.Contains("VirtualNetworkConfigurationDataManagementPublicIPId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualNetworkConfigurationDataManagementPublicIPId = (string) content.GetValueForProperty("VirtualNetworkConfigurationDataManagementPublicIPId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).VirtualNetworkConfigurationDataManagementPublicIPId, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultPropertyKeyVaultUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultPropertyKeyVaultUri = (string) content.GetValueForProperty("KeyVaultPropertyKeyVaultUri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).KeyVaultPropertyKeyVaultUri, global::System.Convert.ToString); + } + if (content.Contains("LanguageExtensionValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).LanguageExtensionValue = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[]) content.GetValueForProperty("LanguageExtensionValue",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal)this).LanguageExtensionValue, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdate DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ClusterUpdate(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdate DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ClusterUpdate(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdate FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing an update to a Kusto cluster. + [System.ComponentModel.TypeConverter(typeof(ClusterUpdateTypeConverter))] + public partial interface IClusterUpdate + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdate.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdate.TypeConverter.cs new file mode 100644 index 000000000000..4bfc75de9b96 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdate.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ClusterUpdateTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdate ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdate).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ClusterUpdate.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ClusterUpdate.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ClusterUpdate.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdate.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdate.cs new file mode 100644 index 000000000000..7587d60ea167 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdate.cs @@ -0,0 +1,791 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing an update to a Kusto cluster. + public partial class ClusterUpdate : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdate, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(); + + /// The cluster's accepted audiences. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[] AcceptedAudience { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).AcceptedAudience; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).AcceptedAudience = value ?? null /* arrayOf */; } + + /// List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] AllowedFqdnList { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).AllowedFqdnList; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).AllowedFqdnList = value ?? null /* arrayOf */; } + + /// The list of ips in the format of CIDR allowed to connect to the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] AllowedIPRangeList { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).AllowedIPRangeList; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).AllowedIPRangeList = value ?? null /* arrayOf */; } + + /// The cluster data ingestion URI. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string DataIngestionUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).DataIngestionUri; } + + /// + /// A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many + /// days). + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public bool? EnableAutoStop { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnableAutoStop; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnableAutoStop = value ?? default(bool); } + + /// A boolean value that indicates if the cluster's disks are encrypted. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public bool? EnableDiskEncryption { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnableDiskEncryption; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnableDiskEncryption = value ?? default(bool); } + + /// A boolean value that indicates if double encryption is enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public bool? EnableDoubleEncryption { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnableDoubleEncryption; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnableDoubleEncryption = value ?? default(bool); } + + /// A boolean value that indicates if the purge operations are enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public bool? EnablePurge { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnablePurge; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnablePurge = value ?? default(bool); } + + /// A boolean value that indicates if the streaming ingest is enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public bool? EnableStreamingIngest { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnableStreamingIngest; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EnableStreamingIngest = value ?? default(bool); } + + /// The engine type + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType? EngineType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EngineType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).EngineType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType)""); } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity _identity; + + /// The identity of the cluster, if configured. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Identity()); set => this._identity = value; } + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).PrincipalId; } + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).TenantId; } + + /// + /// 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 all identities. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType)""); } + + /// + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities IdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).UserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).UserAssignedIdentity = value ?? null /* model class */; } + + /// The name of the key vault key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string KeyVaultPropertyKeyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultPropertyKeyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultPropertyKeyName = value ?? null; } + + /// The Uri of the key vault. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string KeyVaultPropertyKeyVaultUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultPropertyKeyVaultUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultPropertyKeyVaultUri = value ?? null; } + + /// The version of the key vault key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string KeyVaultPropertyKeyVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultPropertyKeyVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultPropertyKeyVersion = value ?? null; } + + /// The user assigned identity (ARM resource id) that has access to the key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string KeyVaultPropertyUserIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultPropertyUserIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultPropertyUserIdentity = value ?? null; } + + /// The list of language extensions. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] LanguageExtensionValue { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).LanguageExtensionValue; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).LanguageExtensionValue = value ?? null /* arrayOf */; } + + /// Backing field for property. + private string _location; + + /// Resource location. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for DataIngestionUri + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal.DataIngestionUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).DataIngestionUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).DataIngestionUri = value; } + + /// Internal Acessors for Identity + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal.Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Identity()); set { {_identity = value;} } } + + /// Internal Acessors for IdentityPrincipalId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal.IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).PrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).PrincipalId = value; } + + /// Internal Acessors for IdentityTenantId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal.IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)Identity).TenantId = value; } + + /// Internal Acessors for KeyVaultProperty + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal.KeyVaultProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).KeyVaultProperty = value; } + + /// Internal Acessors for LanguageExtension + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal.LanguageExtension { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).LanguageExtension; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).LanguageExtension = value; } + + /// Internal Acessors for OptimizedAutoscale + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal.OptimizedAutoscale { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscale; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscale = value; } + + /// Internal Acessors for PrivateEndpointConnection + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[] Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal.PrivateEndpointConnection { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).PrivateEndpointConnection; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).PrivateEndpointConnection = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureSku()); set { {_sku = value;} } } + + /// Internal Acessors for State + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal.State { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).State; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).State = value; } + + /// Internal Acessors for StateReason + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal.StateReason { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).StateReason; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).StateReason = value; } + + /// Internal Acessors for Uri + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal.Uri { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).Uri; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).Uri = value; } + + /// Internal Acessors for VirtualNetworkConfiguration + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateInternal.VirtualNetworkConfiguration { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualNetworkConfiguration; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualNetworkConfiguration = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; } + + /// + /// A boolean value that indicate if the optimized autoscale feature is enabled or not. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public bool? OptimizedAutoscaleIsEnabled { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscaleIsEnabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscaleIsEnabled = value ?? default(bool); } + + /// Maximum allowed instances count. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public int? OptimizedAutoscaleMaximum { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscaleMaximum; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscaleMaximum = value ?? default(int); } + + /// Minimum allowed instances count. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public int? OptimizedAutoscaleMinimum { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscaleMinimum; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscaleMinimum = value ?? default(int); } + + /// The version of the template defined, for instance 1. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public int? OptimizedAutoscaleVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscaleVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).OptimizedAutoscaleVersion = value ?? default(int); } + + /// A list of private endpoint connections. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[] PrivateEndpointConnection { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).PrivateEndpointConnection; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties _property; + + /// The cluster properties. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterProperties()); set => this._property = value; } + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).ProvisioningState; } + + /// + /// Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType? PublicIPType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).PublicIPType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).PublicIPType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType)""); } + + /// + /// Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster + /// is allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess? PublicNetworkAccess { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).PublicNetworkAccess; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).PublicNetworkAccess = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess)""); } + + /// + /// Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled' + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag? RestrictOutboundNetworkAccess { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).RestrictOutboundNetworkAccess; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).RestrictOutboundNetworkAccess = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku _sku; + + /// The SKU of the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureSku()); set => this._sku = value; } + + /// The number of instances of the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public int? SkuCapacity { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Capacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Capacity = value ?? default(int); } + + /// SKU name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName? SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Name = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName)""); } + + /// SKU tier. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier? SkuTier { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Tier; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSkuInternal)Sku).Tier = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier)""); } + + /// The state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State? State { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).State; } + + /// The reason for the cluster's current state. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string StateReason { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).StateReason; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags _tag; + + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterUpdateTags()); set => this._tag = value; } + + /// The cluster's external tenants. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[] TrustedExternalTenant { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).TrustedExternalTenant; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).TrustedExternalTenant = value ?? null /* arrayOf */; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; } + + /// The cluster URI. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string Uri { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).Uri; } + + /// Virtual Cluster graduation properties + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string VirtualClusterGraduationProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualClusterGraduationProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualClusterGraduationProperty = value ?? null; } + + /// Data management's service public IP address resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string VirtualNetworkConfigurationDataManagementPublicIPId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualNetworkConfigurationDataManagementPublicIPId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualNetworkConfigurationDataManagementPublicIPId = value ?? null; } + + /// Engine service's public IP address resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string VirtualNetworkConfigurationEnginePublicIPId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualNetworkConfigurationEnginePublicIPId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualNetworkConfigurationEnginePublicIPId = value ?? null; } + + /// The subnet resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string VirtualNetworkConfigurationSubnetId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualNetworkConfigurationSubnetId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPropertiesInternal)Property).VirtualNetworkConfigurationSubnetId = value ?? null; } + + /// Creates an new instance. + public ClusterUpdate() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Class representing an update to a Kusto cluster. + public partial interface IClusterUpdate : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource + { + /// The cluster's accepted audiences. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The cluster's accepted audiences.", + SerializedName = @"acceptedAudiences", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[] AcceptedAudience { get; set; } + /// List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster.", + SerializedName = @"allowedFqdnList", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedFqdnList { get; set; } + /// The list of ips in the format of CIDR allowed to connect to the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of ips in the format of CIDR allowed to connect to the cluster.", + SerializedName = @"allowedIpRangeList", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedIPRangeList { get; set; } + /// The cluster data ingestion URI. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The cluster data ingestion URI.", + SerializedName = @"dataIngestionUri", + PossibleTypes = new [] { typeof(string) })] + string DataIngestionUri { get; } + /// + /// A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many + /// days). + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days).", + SerializedName = @"enableAutoStop", + PossibleTypes = new [] { typeof(bool) })] + bool? EnableAutoStop { get; set; } + /// A boolean value that indicates if the cluster's disks are encrypted. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the cluster's disks are encrypted.", + SerializedName = @"enableDiskEncryption", + PossibleTypes = new [] { typeof(bool) })] + bool? EnableDiskEncryption { get; set; } + /// A boolean value that indicates if double encryption is enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if double encryption is enabled.", + SerializedName = @"enableDoubleEncryption", + PossibleTypes = new [] { typeof(bool) })] + bool? EnableDoubleEncryption { get; set; } + /// A boolean value that indicates if the purge operations are enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the purge operations are enabled.", + SerializedName = @"enablePurge", + PossibleTypes = new [] { typeof(bool) })] + bool? EnablePurge { get; set; } + /// A boolean value that indicates if the streaming ingest is enabled. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the streaming ingest is enabled.", + SerializedName = @"enableStreamingIngest", + PossibleTypes = new [] { typeof(bool) })] + bool? EnableStreamingIngest { get; set; } + /// The engine type + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The engine type", + SerializedName = @"engineType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType? EngineType { get; set; } + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string IdentityPrincipalId { get; } + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string IdentityTenantId { get; } + /// + /// 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 all identities. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + 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 all identities.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// The name of the key vault key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the key vault key.", + SerializedName = @"keyName", + PossibleTypes = new [] { typeof(string) })] + string KeyVaultPropertyKeyName { get; set; } + /// The Uri of the key vault. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Uri of the key vault.", + SerializedName = @"keyVaultUri", + PossibleTypes = new [] { typeof(string) })] + string KeyVaultPropertyKeyVaultUri { get; set; } + /// The version of the key vault key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the key vault key.", + SerializedName = @"keyVersion", + PossibleTypes = new [] { typeof(string) })] + string KeyVaultPropertyKeyVersion { get; set; } + /// The user assigned identity (ARM resource id) that has access to the key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user assigned identity (ARM resource id) that has access to the key.", + SerializedName = @"userIdentity", + PossibleTypes = new [] { typeof(string) })] + string KeyVaultPropertyUserIdentity { get; set; } + /// The list of language extensions. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of language extensions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] LanguageExtensionValue { get; set; } + /// Resource location. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// + /// A boolean value that indicate if the optimized autoscale feature is enabled or not. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicate if the optimized autoscale feature is enabled or not.", + SerializedName = @"isEnabled", + PossibleTypes = new [] { typeof(bool) })] + bool? OptimizedAutoscaleIsEnabled { get; set; } + /// Maximum allowed instances count. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum allowed instances count.", + SerializedName = @"maximum", + PossibleTypes = new [] { typeof(int) })] + int? OptimizedAutoscaleMaximum { get; set; } + /// Minimum allowed instances count. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum allowed instances count.", + SerializedName = @"minimum", + PossibleTypes = new [] { typeof(int) })] + int? OptimizedAutoscaleMinimum { get; set; } + /// The version of the template defined, for instance 1. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the template defined, for instance 1.", + SerializedName = @"version", + PossibleTypes = new [] { typeof(int) })] + int? OptimizedAutoscaleVersion { get; set; } + /// A list of private endpoint connections. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"A list of private endpoint connections.", + SerializedName = @"privateEndpointConnections", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[] PrivateEndpointConnection { get; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// + /// Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6)", + SerializedName = @"publicIPType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType? PublicIPType { get; set; } + /// + /// Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster + /// is allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster is allowed", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// + /// Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled' + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled'", + SerializedName = @"restrictOutboundNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag? RestrictOutboundNetworkAccess { get; set; } + /// The number of instances of the cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of instances of the cluster.", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + int? SkuCapacity { get; set; } + /// SKU name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SKU name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName? SkuName { get; set; } + /// SKU tier. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SKU tier.", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier? SkuTier { get; set; } + /// The state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The state of the resource.", + SerializedName = @"state", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State? State { get; } + /// The reason for the cluster's current state. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The reason for the cluster's current state.", + SerializedName = @"stateReason", + PossibleTypes = new [] { typeof(string) })] + string StateReason { get; } + /// Resource tags. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags Tag { get; set; } + /// The cluster's external tenants. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The cluster's external tenants.", + SerializedName = @"trustedExternalTenants", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[] TrustedExternalTenant { get; set; } + /// The cluster URI. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The cluster URI.", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + string Uri { get; } + /// Virtual Cluster graduation properties + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Virtual Cluster graduation properties", + SerializedName = @"virtualClusterGraduationProperties", + PossibleTypes = new [] { typeof(string) })] + string VirtualClusterGraduationProperty { get; set; } + /// Data management's service public IP address resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Data management's service public IP address resource id.", + SerializedName = @"dataManagementPublicIpId", + PossibleTypes = new [] { typeof(string) })] + string VirtualNetworkConfigurationDataManagementPublicIPId { get; set; } + /// Engine service's public IP address resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Engine service's public IP address resource id.", + SerializedName = @"enginePublicIpId", + PossibleTypes = new [] { typeof(string) })] + string VirtualNetworkConfigurationEnginePublicIPId { get; set; } + /// The subnet resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The subnet resource id.", + SerializedName = @"subnetId", + PossibleTypes = new [] { typeof(string) })] + string VirtualNetworkConfigurationSubnetId { get; set; } + + } + /// Class representing an update to a Kusto cluster. + internal partial interface IClusterUpdateInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal + { + /// The cluster's accepted audiences. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[] AcceptedAudience { get; set; } + /// List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + string[] AllowedFqdnList { get; set; } + /// The list of ips in the format of CIDR allowed to connect to the cluster. + string[] AllowedIPRangeList { get; set; } + /// The cluster data ingestion URI. + string DataIngestionUri { get; set; } + /// + /// A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many + /// days). + /// + bool? EnableAutoStop { get; set; } + /// A boolean value that indicates if the cluster's disks are encrypted. + bool? EnableDiskEncryption { get; set; } + /// A boolean value that indicates if double encryption is enabled. + bool? EnableDoubleEncryption { get; set; } + /// A boolean value that indicates if the purge operations are enabled. + bool? EnablePurge { get; set; } + /// A boolean value that indicates if the streaming ingest is enabled. + bool? EnableStreamingIngest { get; set; } + /// The engine type + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType? EngineType { get; set; } + /// The identity of the cluster, if configured. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity Identity { get; set; } + /// The principal ID of resource identity. + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + string IdentityTenantId { get; set; } + /// + /// 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 all identities. + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// KeyVault properties for the cluster encryption. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties KeyVaultProperty { get; set; } + /// The name of the key vault key. + string KeyVaultPropertyKeyName { get; set; } + /// The Uri of the key vault. + string KeyVaultPropertyKeyVaultUri { get; set; } + /// The version of the key vault key. + string KeyVaultPropertyKeyVersion { get; set; } + /// The user assigned identity (ARM resource id) that has access to the key. + string KeyVaultPropertyUserIdentity { get; set; } + /// List of the cluster's language extensions. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList LanguageExtension { get; set; } + /// The list of language extensions. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] LanguageExtensionValue { get; set; } + /// Resource location. + string Location { get; set; } + /// Optimized auto scale definition. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale OptimizedAutoscale { get; set; } + /// + /// A boolean value that indicate if the optimized autoscale feature is enabled or not. + /// + bool? OptimizedAutoscaleIsEnabled { get; set; } + /// Maximum allowed instances count. + int? OptimizedAutoscaleMaximum { get; set; } + /// Minimum allowed instances count. + int? OptimizedAutoscaleMinimum { get; set; } + /// The version of the template defined, for instance 1. + int? OptimizedAutoscaleVersion { get; set; } + /// A list of private endpoint connections. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[] PrivateEndpointConnection { get; set; } + /// The cluster properties. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterProperties Property { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// + /// Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType? PublicIPType { get; set; } + /// + /// Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster + /// is allowed + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// + /// Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled' + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag? RestrictOutboundNetworkAccess { get; set; } + /// The SKU of the cluster. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureSku Sku { get; set; } + /// The number of instances of the cluster. + int? SkuCapacity { get; set; } + /// SKU name. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName? SkuName { get; set; } + /// SKU tier. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier? SkuTier { get; set; } + /// The state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State? State { get; set; } + /// The reason for the cluster's current state. + string StateReason { get; set; } + /// Resource tags. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags Tag { get; set; } + /// The cluster's external tenants. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[] TrustedExternalTenant { get; set; } + /// The cluster URI. + string Uri { get; set; } + /// Virtual Cluster graduation properties + string VirtualClusterGraduationProperty { get; set; } + /// Virtual network definition. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration VirtualNetworkConfiguration { get; set; } + /// Data management's service public IP address resource id. + string VirtualNetworkConfigurationDataManagementPublicIPId { get; set; } + /// Engine service's public IP address resource id. + string VirtualNetworkConfigurationEnginePublicIPId { get; set; } + /// The subnet resource id. + string VirtualNetworkConfigurationSubnetId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdate.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdate.json.cs new file mode 100644 index 000000000000..83c62a969f14 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdate.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing an update to a Kusto cluster. + public partial class ClusterUpdate + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ClusterUpdate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(json); + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureSku.FromJson(__jsonSku) : Sku;} + {_identity = If( json?.PropertyT("identity"), out var __jsonIdentity) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Identity.FromJson(__jsonIdentity) : Identity;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterProperties.FromJson(__jsonProperties) : Property;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterUpdateTags.FromJson(__jsonTags) : Tag;} + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdate. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdate. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdate FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ClusterUpdate(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + AddIf( null != this._sku ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._sku.ToJson(null,serializationMode) : null, "sku" ,container.Add ); + AddIf( null != this._identity ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._identity.ToJson(null,serializationMode) : null, "identity" ,container.Add ); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._tag.ToJson(null,serializationMode) : null, "tags" ,container.Add ); + AddIf( null != (((object)this._location)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._location.ToString()) : null, "location" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.PowerShell.cs new file mode 100644 index 000000000000..8d9266bfa5f6 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.PowerShell.cs @@ -0,0 +1,138 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Resource tags. + [System.ComponentModel.TypeConverter(typeof(ClusterUpdateTagsTypeConverter))] + public partial class ClusterUpdateTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ClusterUpdateTags(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + // this type is a dictionary; copy elements from source to here. + CopyFrom(content); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ClusterUpdateTags(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + // this type is a dictionary; copy elements from source to here. + CopyFrom(content); + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ClusterUpdateTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ClusterUpdateTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Resource tags. + [System.ComponentModel.TypeConverter(typeof(ClusterUpdateTagsTypeConverter))] + public partial interface IClusterUpdateTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.TypeConverter.cs new file mode 100644 index 000000000000..441b8645a91a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ClusterUpdateTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ClusterUpdateTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ClusterUpdateTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ClusterUpdateTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.cs new file mode 100644 index 000000000000..7d3a4651b8e9 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.cs @@ -0,0 +1,35 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Resource tags. + public partial class ClusterUpdateTags : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTagsInternal + { + + /// Creates an new instance. + public ClusterUpdateTags() + { + + } + } + /// Resource tags. + public partial interface IClusterUpdateTags : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray + { + + } + /// Resource tags. + internal partial interface IClusterUpdateTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.dictionary.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.dictionary.cs new file mode 100644 index 000000000000..84906312e260 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + public partial class ClusterUpdateTags : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray.Values { get => __additionalProperties.Values; } + + public string this[global::System.String index] { get => __additionalProperties[index]; set => __additionalProperties[index] = value; } + + /// + /// + public void Add(global::System.String key, string value) => __additionalProperties.Add( key, value); + + public void Clear() => __additionalProperties.Clear(); + + /// + public bool ContainsKey(global::System.String key) => __additionalProperties.ContainsKey( key); + + /// + public void CopyFrom(global::System.Collections.IDictionary source) + { + if (null != source) + { + foreach( var property in Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.TypeConverterExtensions.GetFilteredProperties(source, new global::System.Collections.Generic.HashSet() { } ) ) + { + if ((null != property.Key && null != property.Value)) + { + this.__additionalProperties.Add(property.Key.ToString(), global::System.Management.Automation.LanguagePrimitives.ConvertTo( property.Value)); + } + } + } + } + + /// + public void CopyFrom(global::System.Management.Automation.PSObject source) + { + if (null != source) + { + foreach( var property in Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.TypeConverterExtensions.GetFilteredProperties(source, new global::System.Collections.Generic.HashSet() { } ) ) + { + if ((null != property.Key && null != property.Value)) + { + this.__additionalProperties.Add(property.Key.ToString(), global::System.Management.Automation.LanguagePrimitives.ConvertTo( property.Value)); + } + } + } + } + + /// + public bool Remove(global::System.String key) => __additionalProperties.Remove( key); + + /// + /// + public bool TryGetValue(global::System.String key, out string value) => __additionalProperties.TryGetValue( key, out value); + + /// + + public static implicit operator global::System.Collections.Generic.Dictionary(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterUpdateTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.json.cs new file mode 100644 index 000000000000..6e35a483dd6f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ClusterUpdateTags.json.cs @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Resource tags. + public partial class ClusterUpdateTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + /// + internal ClusterUpdateTags(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, global::System.Collections.Generic.HashSet exclusions = null) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ClusterUpdateTags(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.PowerShell.cs new file mode 100644 index 000000000000..1b5ce5be5541 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.PowerShell.cs @@ -0,0 +1,151 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalpropertiesTypeConverter))] + public partial class ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalpropertiesInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalpropertiesInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalpropertiesInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalpropertiesInternal)this).ClientId, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalpropertiesInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalpropertiesInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalpropertiesInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalpropertiesInternal)this).ClientId, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalpropertiesTypeConverter))] + public partial interface IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.TypeConverter.cs new file mode 100644 index 000000000000..072bf057ca2f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.TypeConverter.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalpropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or + /// null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or + /// null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.cs new file mode 100644 index 000000000000..f7d0d9d483d3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.cs @@ -0,0 +1,73 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + public partial class ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalpropertiesInternal + { + + /// Backing field for property. + private string _clientId; + + /// The client id of user assigned identity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ClientId { get => this._clientId; } + + /// Internal Acessors for ClientId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalpropertiesInternal.ClientId { get => this._clientId; set { {_clientId = value;} } } + + /// Internal Acessors for PrincipalId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalpropertiesInternal.PrincipalId { get => this._principalId; set { {_principalId = value;} } } + + /// Backing field for property. + private string _principalId; + + /// The principal id of user assigned identity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string PrincipalId { get => this._principalId; } + + /// + /// Creates an new instance. + /// + public ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties() + { + + } + } + public partial interface IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The client id of user assigned identity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The client id of user assigned identity.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string ClientId { get; } + /// The principal id of user assigned identity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The principal id of user assigned identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string PrincipalId { get; } + + } + internal partial interface IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalpropertiesInternal + + { + /// The client id of user assigned identity. + string ClientId { get; set; } + /// The principal id of user assigned identity. + string PrincipalId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.json.cs new file mode 100644 index 000000000000..a314d285a4e6 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + public partial class ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_principalId = If( json?.PropertyT("principalId"), out var __jsonPrincipalId) ? (string)__jsonPrincipalId : (string)PrincipalId;} + {_clientId = If( json?.PropertyT("clientId"), out var __jsonClientId) ? (string)__jsonClientId : (string)ClientId;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._principalId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._principalId.ToString()) : null, "principalId" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._clientId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._clientId.ToString()) : null, "clientId" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnection.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnection.PowerShell.cs new file mode 100644 index 000000000000..a2683ae65c09 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnection.PowerShell.cs @@ -0,0 +1,182 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing an data connection. + [System.ComponentModel.TypeConverter(typeof(DataConnectionTypeConverter))] + public partial class DataConnection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DataConnection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind.CreateFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DataConnection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind.CreateFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DataConnection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DataConnection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing an data connection. + [System.ComponentModel.TypeConverter(typeof(DataConnectionTypeConverter))] + public partial interface IDataConnection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnection.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnection.TypeConverter.cs new file mode 100644 index 000000000000..9b3a5be60c82 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnection.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DataConnectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DataConnection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DataConnection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DataConnection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnection.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnection.cs new file mode 100644 index 000000000000..907c7e8d0be3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnection.cs @@ -0,0 +1,135 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing an data connection. + public partial class DataConnection : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(); + + /// Backing field for property. + private string _azureAsyncOperation; + + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string AzureAsyncOperation { get => this._azureAsyncOperation; set => this._azureAsyncOperation = value; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind _kind; + + /// Kind of the endpoint for the data connection + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind Kind { get => this._kind; set => this._kind = value; } + + /// Backing field for property. + private string _location; + + /// Resource location. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public DataConnection() + { + + } + + /// + void Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable.ReadHeaders(global::System.Net.Http.Headers.HttpResponseHeaders headers) + { + if (headers.TryGetValues("Azure-AsyncOperation", out var __azureAsyncOperationHeader0)) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation = System.Linq.Enumerable.FirstOrDefault(__azureAsyncOperationHeader0) is string __headerAzureAsyncOperationHeader0 ? __headerAzureAsyncOperationHeader0 : (string)null; + } + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Class representing an data connection. + public partial interface IDataConnection : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource + { + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"Azure-AsyncOperation", + PossibleTypes = new [] { typeof(string) })] + string AzureAsyncOperation { get; set; } + /// Kind of the endpoint for the data connection + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Kind of the endpoint for the data connection", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind Kind { get; set; } + /// Resource location. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + + } + /// Class representing an data connection. + internal partial interface IDataConnectionInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal + { + string AzureAsyncOperation { get; set; } + /// Kind of the endpoint for the data connection + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind Kind { get; set; } + /// Resource location. + string Location { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnection.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnection.json.cs new file mode 100644 index 000000000000..eacc90a9802a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnection.json.cs @@ -0,0 +1,133 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing an data connection. + public partial class DataConnection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal DataConnection(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(json); + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + {_kind = If( json?.PropertyT("kind"), out var __jsonKind) ? (string)__jsonKind : (string)Kind;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection. + /// Note: the Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection interface is polymorphic, and the + /// precise model class that will get deserialized is determined at runtime based on the payload. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + if (!(node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json)) + { + return null; + } + // Polymorphic type -- select the appropriate constructor using the discriminator + + switch ( json.StringProperty("kind") ) + { + case "EventHub": + { + return new EventHubDataConnection(json); + } + case "IotHub": + { + return new IotHubDataConnection(json); + } + case "EventGrid": + { + return new EventGridDataConnection(json); + } + } + return new DataConnection(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + AddIf( null != (((object)this._location)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._location.ToString()) : null, "location" ,container.Add ); + AddIf( null != (((object)this._kind)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._kind.ToString()) : null, "kind" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionCheckNameRequest.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionCheckNameRequest.PowerShell.cs new file mode 100644 index 000000000000..c79aff7c2c9e --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionCheckNameRequest.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A data connection check name availability request. + [System.ComponentModel.TypeConverter(typeof(DataConnectionCheckNameRequestTypeConverter))] + public partial class DataConnectionCheckNameRequest + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DataConnectionCheckNameRequest(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequestInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequestInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DataConnectionCheckNameRequest(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequestInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequestInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DataConnectionCheckNameRequest(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DataConnectionCheckNameRequest(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A data connection check name availability request. + [System.ComponentModel.TypeConverter(typeof(DataConnectionCheckNameRequestTypeConverter))] + public partial interface IDataConnectionCheckNameRequest + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionCheckNameRequest.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionCheckNameRequest.TypeConverter.cs new file mode 100644 index 000000000000..c4681885b9d9 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionCheckNameRequest.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DataConnectionCheckNameRequestTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DataConnectionCheckNameRequest.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DataConnectionCheckNameRequest.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DataConnectionCheckNameRequest.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionCheckNameRequest.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionCheckNameRequest.cs new file mode 100644 index 000000000000..3c8aa2ec6180 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionCheckNameRequest.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A data connection check name availability request. + public partial class DataConnectionCheckNameRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequestInternal + { + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequestInternal.Type { get => this._type; set { {_type = value;} } } + + /// Backing field for property. + private string _name; + + /// Data Connection name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _type= @"Microsoft.Kusto/clusters/databases/dataConnections"; + + /// The type of resource, Microsoft.Kusto/clusters/databases/dataConnections. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Type { get => this._type; } + + /// Creates an new instance. + public DataConnectionCheckNameRequest() + { + + } + } + /// A data connection check name availability request. + public partial interface IDataConnectionCheckNameRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Data Connection name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Data Connection name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// The type of resource, Microsoft.Kusto/clusters/databases/dataConnections. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = true, + Description = @"The type of resource, Microsoft.Kusto/clusters/databases/dataConnections.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; } + + } + /// A data connection check name availability request. + internal partial interface IDataConnectionCheckNameRequestInternal + + { + /// Data Connection name. + string Name { get; set; } + /// The type of resource, Microsoft.Kusto/clusters/databases/dataConnections. + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionCheckNameRequest.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionCheckNameRequest.json.cs new file mode 100644 index 000000000000..47f966ee763a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionCheckNameRequest.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A data connection check name availability request. + public partial class DataConnectionCheckNameRequest + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal DataConnectionCheckNameRequest(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new DataConnectionCheckNameRequest(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionListResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionListResult.PowerShell.cs new file mode 100644 index 000000000000..c4e0e11dcfb9 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionListResult.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The list Kusto data connections operation response. + [System.ComponentModel.TypeConverter(typeof(DataConnectionListResultTypeConverter))] + public partial class DataConnectionListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DataConnectionListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DataConnectionListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DataConnectionListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DataConnectionListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The list Kusto data connections operation response. + [System.ComponentModel.TypeConverter(typeof(DataConnectionListResultTypeConverter))] + public partial interface IDataConnectionListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionListResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionListResult.TypeConverter.cs new file mode 100644 index 000000000000..906d36fb9628 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DataConnectionListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DataConnectionListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DataConnectionListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DataConnectionListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionListResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionListResult.cs new file mode 100644 index 000000000000..44a8c00c7f85 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionListResult.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto data connections operation response. + public partial class DataConnectionListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionListResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionListResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection[] _value; + + /// The list of Kusto data connections. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public DataConnectionListResult() + { + + } + } + /// The list Kusto data connections operation response. + public partial interface IDataConnectionListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The list of Kusto data connections. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of Kusto data connections.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection[] Value { get; set; } + + } + /// The list Kusto data connections operation response. + internal partial interface IDataConnectionListResultInternal + + { + /// The list of Kusto data connections. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionListResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionListResult.json.cs new file mode 100644 index 000000000000..f8fb23735e7e --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionListResult.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto data connections operation response. + public partial class DataConnectionListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal DataConnectionListResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new DataConnectionListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidation.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidation.PowerShell.cs new file mode 100644 index 000000000000..f25c43c79f37 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidation.PowerShell.cs @@ -0,0 +1,198 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing an data connection validation. + [System.ComponentModel.TypeConverter(typeof(DataConnectionValidationTypeConverter))] + public partial class DataConnectionValidation + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DataConnectionValidation(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionTypeConverter.ConvertFrom); + } + if (content.Contains("DataConnectionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).DataConnectionName = (string) content.GetValueForProperty("DataConnectionName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).DataConnectionName, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind.CreateFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DataConnectionValidation(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionTypeConverter.ConvertFrom); + } + if (content.Contains("DataConnectionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).DataConnectionName = (string) content.GetValueForProperty("DataConnectionName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).DataConnectionName, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind.CreateFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DataConnectionValidation(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DataConnectionValidation(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing an data connection validation. + [System.ComponentModel.TypeConverter(typeof(DataConnectionValidationTypeConverter))] + public partial interface IDataConnectionValidation + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidation.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidation.TypeConverter.cs new file mode 100644 index 000000000000..a16521d59d28 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidation.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DataConnectionValidationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DataConnectionValidation.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DataConnectionValidation.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DataConnectionValidation.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidation.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidation.cs new file mode 100644 index 000000000000..15c8fef86f8d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidation.cs @@ -0,0 +1,175 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing an data connection validation. + public partial class DataConnectionValidation : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable + { + + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string AzureAsyncOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)Property).AzureAsyncOperation; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)Property).AzureAsyncOperation = value ?? null; } + + /// Backing field for property. + private string _dataConnectionName; + + /// The name of the data connection. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string DataConnectionName { get => this._dataConnectionName; set => this._dataConnectionName = value; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)Property).Id; } + + /// Kind of the endpoint for the data connection + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind? Kind { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)Property).Kind; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)Property).Kind = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind)""); } + + /// Resource location. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)Property).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)Property).Location = value ?? null; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)Property).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)Property).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)Property).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)Property).Name = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection()); set { {_property = value;} } } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)Property).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)Property).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)Property).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection _property; + + /// The data connection properties to validate. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection()); set => this._property = value; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)Property).Type; } + + /// Creates an new instance. + public DataConnectionValidation() + { + + } + + /// + void Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable.ReadHeaders(global::System.Net.Http.Headers.HttpResponseHeaders headers) + { + if (headers.TryGetValues("Azure-AsyncOperation", out var __azureAsyncOperationHeader0)) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationInternal)this).AzureAsyncOperation = System.Linq.Enumerable.FirstOrDefault(__azureAsyncOperationHeader0) is string __headerAzureAsyncOperationHeader0 ? __headerAzureAsyncOperationHeader0 : (string)null; + } + } + } + /// Class representing an data connection validation. + public partial interface IDataConnectionValidation : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"Azure-AsyncOperation", + PossibleTypes = new [] { typeof(string) })] + string AzureAsyncOperation { get; set; } + /// The name of the data connection. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the data connection.", + SerializedName = @"dataConnectionName", + PossibleTypes = new [] { typeof(string) })] + string DataConnectionName { get; set; } + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; } + /// Kind of the endpoint for the data connection + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Kind of the endpoint for the data connection", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind? Kind { get; set; } + /// Resource location. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The name of the resource", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The type of the resource. E.g. ""Microsoft.Compute/virtualMachines"" or ""Microsoft.Storage/storageAccounts""", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; } + + } + /// Class representing an data connection validation. + internal partial interface IDataConnectionValidationInternal + + { + string AzureAsyncOperation { get; set; } + /// The name of the data connection. + string DataConnectionName { get; set; } + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + string Id { get; set; } + /// Kind of the endpoint for the data connection + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind? Kind { get; set; } + /// Resource location. + string Location { get; set; } + /// The name of the resource + string Name { get; set; } + /// The data connection properties to validate. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection Property { get; set; } + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidation.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidation.json.cs new file mode 100644 index 000000000000..8569ac7625b5 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidation.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing an data connection validation. + public partial class DataConnectionValidation + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal DataConnectionValidation(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection.FromJson(__jsonProperties) : Property;} + {_dataConnectionName = If( json?.PropertyT("dataConnectionName"), out var __jsonDataConnectionName) ? (string)__jsonDataConnectionName : (string)DataConnectionName;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new DataConnectionValidation(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != (((object)this._dataConnectionName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._dataConnectionName.ToString()) : null, "dataConnectionName" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationListResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationListResult.PowerShell.cs new file mode 100644 index 000000000000..8f7d15b5826a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationListResult.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The list Kusto data connection validation result. + [System.ComponentModel.TypeConverter(typeof(DataConnectionValidationListResultTypeConverter))] + public partial class DataConnectionValidationListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DataConnectionValidationListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionValidationResultTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DataConnectionValidationListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionValidationResultTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DataConnectionValidationListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DataConnectionValidationListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The list Kusto data connection validation result. + [System.ComponentModel.TypeConverter(typeof(DataConnectionValidationListResultTypeConverter))] + public partial interface IDataConnectionValidationListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationListResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationListResult.TypeConverter.cs new file mode 100644 index 000000000000..d20b0e04ea35 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationListResult.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DataConnectionValidationListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DataConnectionValidationListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DataConnectionValidationListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DataConnectionValidationListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationListResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationListResult.cs new file mode 100644 index 000000000000..c1920b29d36c --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationListResult.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto data connection validation result. + public partial class DataConnectionValidationListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationListResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationListResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult[] _value; + + /// The list of Kusto data connection validation errors. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public DataConnectionValidationListResult() + { + + } + } + /// The list Kusto data connection validation result. + public partial interface IDataConnectionValidationListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The list of Kusto data connection validation errors. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of Kusto data connection validation errors.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult[] Value { get; set; } + + } + /// The list Kusto data connection validation result. + internal partial interface IDataConnectionValidationListResultInternal + + { + /// The list of Kusto data connection validation errors. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationListResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationListResult.json.cs new file mode 100644 index 000000000000..6eff83b927ae --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationListResult.json.cs @@ -0,0 +1,115 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto data connection validation result. + public partial class DataConnectionValidationListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal DataConnectionValidationListResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionValidationResult.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new DataConnectionValidationListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationResult.PowerShell.cs new file mode 100644 index 000000000000..f9ee1a3bc17a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationResult.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The result returned from a data connection validation request. + [System.ComponentModel.TypeConverter(typeof(DataConnectionValidationResultTypeConverter))] + public partial class DataConnectionValidationResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DataConnectionValidationResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ErrorMessage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResultInternal)this).ErrorMessage = (string) content.GetValueForProperty("ErrorMessage",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResultInternal)this).ErrorMessage, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DataConnectionValidationResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ErrorMessage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResultInternal)this).ErrorMessage = (string) content.GetValueForProperty("ErrorMessage",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResultInternal)this).ErrorMessage, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DataConnectionValidationResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DataConnectionValidationResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The result returned from a data connection validation request. + [System.ComponentModel.TypeConverter(typeof(DataConnectionValidationResultTypeConverter))] + public partial interface IDataConnectionValidationResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationResult.TypeConverter.cs new file mode 100644 index 000000000000..d2ea92831cc3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DataConnectionValidationResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DataConnectionValidationResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DataConnectionValidationResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DataConnectionValidationResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationResult.cs new file mode 100644 index 000000000000..8f4de4015b0b --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationResult.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The result returned from a data connection validation request. + public partial class DataConnectionValidationResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResultInternal + { + + /// Backing field for property. + private string _errorMessage; + + /// A message which indicates a problem in data connection validation. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ErrorMessage { get => this._errorMessage; set => this._errorMessage = value; } + + /// Creates an new instance. + public DataConnectionValidationResult() + { + + } + } + /// The result returned from a data connection validation request. + public partial interface IDataConnectionValidationResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// A message which indicates a problem in data connection validation. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A message which indicates a problem in data connection validation.", + SerializedName = @"errorMessage", + PossibleTypes = new [] { typeof(string) })] + string ErrorMessage { get; set; } + + } + /// The result returned from a data connection validation request. + internal partial interface IDataConnectionValidationResultInternal + + { + /// A message which indicates a problem in data connection validation. + string ErrorMessage { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationResult.json.cs new file mode 100644 index 000000000000..dacf9458dc9c --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DataConnectionValidationResult.json.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The result returned from a data connection validation request. + public partial class DataConnectionValidationResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal DataConnectionValidationResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_errorMessage = If( json?.PropertyT("errorMessage"), out var __jsonErrorMessage) ? (string)__jsonErrorMessage : (string)ErrorMessage;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new DataConnectionValidationResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._errorMessage)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._errorMessage.ToString()) : null, "errorMessage" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Database.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Database.PowerShell.cs new file mode 100644 index 000000000000..76b613bd482a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Database.PowerShell.cs @@ -0,0 +1,182 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing a Kusto database. + [System.ComponentModel.TypeConverter(typeof(DatabaseTypeConverter))] + public partial class Database + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Database(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind.CreateFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Database(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind.CreateFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Database(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Database(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing a Kusto database. + [System.ComponentModel.TypeConverter(typeof(DatabaseTypeConverter))] + public partial interface IDatabase + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Database.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Database.TypeConverter.cs new file mode 100644 index 000000000000..1fe22befff51 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Database.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DatabaseTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Database.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Database.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Database.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Database.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Database.cs new file mode 100644 index 000000000000..db8bf67b779a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Database.cs @@ -0,0 +1,135 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing a Kusto database. + public partial class Database : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(); + + /// Backing field for property. + private string _azureAsyncOperation; + + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string AzureAsyncOperation { get => this._azureAsyncOperation; set => this._azureAsyncOperation = value; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind _kind; + + /// Kind of the database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind Kind { get => this._kind; set => this._kind = value; } + + /// Backing field for property. + private string _location; + + /// Resource location. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public Database() + { + + } + + /// + void Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable.ReadHeaders(global::System.Net.Http.Headers.HttpResponseHeaders headers) + { + if (headers.TryGetValues("Azure-AsyncOperation", out var __azureAsyncOperationHeader0)) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).AzureAsyncOperation = System.Linq.Enumerable.FirstOrDefault(__azureAsyncOperationHeader0) is string __headerAzureAsyncOperationHeader0 ? __headerAzureAsyncOperationHeader0 : (string)null; + } + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Class representing a Kusto database. + public partial interface IDatabase : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource + { + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"Azure-AsyncOperation", + PossibleTypes = new [] { typeof(string) })] + string AzureAsyncOperation { get; set; } + /// Kind of the database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Kind of the database", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind Kind { get; set; } + /// Resource location. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + + } + /// Class representing a Kusto database. + internal partial interface IDatabaseInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal + { + string AzureAsyncOperation { get; set; } + /// Kind of the database + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind Kind { get; set; } + /// Resource location. + string Location { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Database.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Database.json.cs new file mode 100644 index 000000000000..2c521300ea97 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Database.json.cs @@ -0,0 +1,129 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing a Kusto database. + public partial class Database + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal Database(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(json); + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + {_kind = If( json?.PropertyT("kind"), out var __jsonKind) ? (string)__jsonKind : (string)Kind;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase. + /// Note: the Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase interface is polymorphic, and the precise + /// model class that will get deserialized is determined at runtime based on the payload. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + if (!(node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json)) + { + return null; + } + // Polymorphic type -- select the appropriate constructor using the discriminator + + switch ( json.StringProperty("kind") ) + { + case "ReadWrite": + { + return new ReadWriteDatabase(json); + } + case "ReadOnlyFollowing": + { + return new ReadOnlyFollowingDatabase(json); + } + } + return new Database(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + AddIf( null != (((object)this._location)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._location.ToString()) : null, "location" ,container.Add ); + AddIf( null != (((object)this._kind)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._kind.ToString()) : null, "kind" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseListResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseListResult.PowerShell.cs new file mode 100644 index 000000000000..8decb2bb440d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseListResult.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The list Kusto databases operation response. + [System.ComponentModel.TypeConverter(typeof(DatabaseListResultTypeConverter))] + public partial class DatabaseListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DatabaseListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DatabaseListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DatabaseListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DatabaseListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The list Kusto databases operation response. + [System.ComponentModel.TypeConverter(typeof(DatabaseListResultTypeConverter))] + public partial interface IDatabaseListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseListResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseListResult.TypeConverter.cs new file mode 100644 index 000000000000..149aac404fc2 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DatabaseListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DatabaseListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DatabaseListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DatabaseListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseListResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseListResult.cs new file mode 100644 index 000000000000..ab0fff4477f7 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseListResult.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto databases operation response. + public partial class DatabaseListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseListResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseListResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase[] _value; + + /// The list of Kusto databases. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public DatabaseListResult() + { + + } + } + /// The list Kusto databases operation response. + public partial interface IDatabaseListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The list of Kusto databases. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of Kusto databases.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase[] Value { get; set; } + + } + /// The list Kusto databases operation response. + internal partial interface IDatabaseListResultInternal + + { + /// The list of Kusto databases. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseListResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseListResult.json.cs new file mode 100644 index 000000000000..b1358e180006 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseListResult.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto databases operation response. + public partial class DatabaseListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal DatabaseListResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Database.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new DatabaseListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipal.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipal.PowerShell.cs new file mode 100644 index 000000000000..9a54ca9a80cf --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipal.PowerShell.cs @@ -0,0 +1,190 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A class representing database principal entity. + [System.ComponentModel.TypeConverter(typeof(DatabasePrincipalTypeConverter))] + public partial class DatabasePrincipal + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DatabasePrincipal(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Role")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Role = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole) content.GetValueForProperty("Role",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Role, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole.CreateFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType.CreateFrom); + } + if (content.Contains("Fqn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Fqn = (string) content.GetValueForProperty("Fqn",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Fqn, global::System.Convert.ToString); + } + if (content.Contains("Email")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Email = (string) content.GetValueForProperty("Email",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Email, global::System.Convert.ToString); + } + if (content.Contains("AppId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).AppId = (string) content.GetValueForProperty("AppId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).AppId, global::System.Convert.ToString); + } + if (content.Contains("TenantName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).TenantName = (string) content.GetValueForProperty("TenantName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).TenantName, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DatabasePrincipal(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Role")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Role = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole) content.GetValueForProperty("Role",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Role, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole.CreateFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType.CreateFrom); + } + if (content.Contains("Fqn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Fqn = (string) content.GetValueForProperty("Fqn",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Fqn, global::System.Convert.ToString); + } + if (content.Contains("Email")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Email = (string) content.GetValueForProperty("Email",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).Email, global::System.Convert.ToString); + } + if (content.Contains("AppId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).AppId = (string) content.GetValueForProperty("AppId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).AppId, global::System.Convert.ToString); + } + if (content.Contains("TenantName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).TenantName = (string) content.GetValueForProperty("TenantName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal)this).TenantName, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DatabasePrincipal(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DatabasePrincipal(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A class representing database principal entity. + [System.ComponentModel.TypeConverter(typeof(DatabasePrincipalTypeConverter))] + public partial interface IDatabasePrincipal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipal.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipal.TypeConverter.cs new file mode 100644 index 000000000000..2ba3fc5d2889 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipal.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DatabasePrincipalTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DatabasePrincipal.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DatabasePrincipal.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DatabasePrincipal.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipal.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipal.cs new file mode 100644 index 000000000000..d0f699cffda3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipal.cs @@ -0,0 +1,156 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class representing database principal entity. + public partial class DatabasePrincipal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal + { + + /// Backing field for property. + private string _appId; + + /// Application id - relevant only for application principal type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string AppId { get => this._appId; set => this._appId = value; } + + /// Backing field for property. + private string _email; + + /// Database principal email if exists. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Email { get => this._email; set => this._email = value; } + + /// Backing field for property. + private string _fqn; + + /// Database principal fully qualified name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Fqn { get => this._fqn; set => this._fqn = value; } + + /// Internal Acessors for TenantName + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalInternal.TenantName { get => this._tenantName; set { {_tenantName = value;} } } + + /// Backing field for property. + private string _name; + + /// Database principal name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole _role; + + /// Database principal role. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole Role { get => this._role; set => this._role = value; } + + /// Backing field for property. + private string _tenantName; + + /// The tenant name of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string TenantName { get => this._tenantName; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType _type; + + /// Database principal type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType Type { get => this._type; set => this._type = value; } + + /// Creates an new instance. + public DatabasePrincipal() + { + + } + } + /// A class representing database principal entity. + public partial interface IDatabasePrincipal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Application id - relevant only for application principal type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application id - relevant only for application principal type.", + SerializedName = @"appId", + PossibleTypes = new [] { typeof(string) })] + string AppId { get; set; } + /// Database principal email if exists. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Database principal email if exists.", + SerializedName = @"email", + PossibleTypes = new [] { typeof(string) })] + string Email { get; set; } + /// Database principal fully qualified name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Database principal fully qualified name.", + SerializedName = @"fqn", + PossibleTypes = new [] { typeof(string) })] + string Fqn { get; set; } + /// Database principal name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Database principal name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Database principal role. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Database principal role.", + SerializedName = @"role", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole Role { get; set; } + /// The tenant name of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The tenant name of the principal", + SerializedName = @"tenantName", + PossibleTypes = new [] { typeof(string) })] + string TenantName { get; } + /// Database principal type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Database principal type.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType Type { get; set; } + + } + /// A class representing database principal entity. + internal partial interface IDatabasePrincipalInternal + + { + /// Application id - relevant only for application principal type. + string AppId { get; set; } + /// Database principal email if exists. + string Email { get; set; } + /// Database principal fully qualified name. + string Fqn { get; set; } + /// Database principal name. + string Name { get; set; } + /// Database principal role. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole Role { get; set; } + /// The tenant name of the principal + string TenantName { get; set; } + /// Database principal type. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipal.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipal.json.cs new file mode 100644 index 000000000000..829fdb490bd3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipal.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class representing database principal entity. + public partial class DatabasePrincipal + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal DatabasePrincipal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_role = If( json?.PropertyT("role"), out var __jsonRole) ? (string)__jsonRole : (string)Role;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + {_fqn = If( json?.PropertyT("fqn"), out var __jsonFqn) ? (string)__jsonFqn : (string)Fqn;} + {_email = If( json?.PropertyT("email"), out var __jsonEmail) ? (string)__jsonEmail : (string)Email;} + {_appId = If( json?.PropertyT("appId"), out var __jsonAppId) ? (string)__jsonAppId : (string)AppId;} + {_tenantName = If( json?.PropertyT("tenantName"), out var __jsonTenantName) ? (string)__jsonTenantName : (string)TenantName;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new DatabasePrincipal(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._role)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._role.ToString()) : null, "role" ,container.Add ); + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AddIf( null != (((object)this._fqn)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._fqn.ToString()) : null, "fqn" ,container.Add ); + AddIf( null != (((object)this._email)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._email.ToString()) : null, "email" ,container.Add ); + AddIf( null != (((object)this._appId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._appId.ToString()) : null, "appId" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._tenantName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._tenantName.ToString()) : null, "tenantName" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignment.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignment.PowerShell.cs new file mode 100644 index 000000000000..2fe08213ad3f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignment.PowerShell.cs @@ -0,0 +1,230 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing a database principal assignment. + [System.ComponentModel.TypeConverter(typeof(DatabasePrincipalAssignmentTypeConverter))] + public partial class DatabasePrincipalAssignment + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DatabasePrincipalAssignment(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("PrincipalType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).PrincipalType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType) content.GetValueForProperty("PrincipalType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).PrincipalType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("Role")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).Role = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole) content.GetValueForProperty("Role",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).Role, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole.CreateFrom); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("TenantName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).TenantName = (string) content.GetValueForProperty("TenantName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).TenantName, global::System.Convert.ToString); + } + if (content.Contains("PrincipalName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).PrincipalName = (string) content.GetValueForProperty("PrincipalName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).PrincipalName, global::System.Convert.ToString); + } + if (content.Contains("AadObjectId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).AadObjectId = (string) content.GetValueForProperty("AadObjectId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).AadObjectId, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DatabasePrincipalAssignment(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("PrincipalType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).PrincipalType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType) content.GetValueForProperty("PrincipalType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).PrincipalType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("Role")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).Role = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole) content.GetValueForProperty("Role",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).Role, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole.CreateFrom); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("TenantName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).TenantName = (string) content.GetValueForProperty("TenantName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).TenantName, global::System.Convert.ToString); + } + if (content.Contains("PrincipalName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).PrincipalName = (string) content.GetValueForProperty("PrincipalName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).PrincipalName, global::System.Convert.ToString); + } + if (content.Contains("AadObjectId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).AadObjectId = (string) content.GetValueForProperty("AadObjectId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal)this).AadObjectId, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DatabasePrincipalAssignment(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DatabasePrincipalAssignment(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing a database principal assignment. + [System.ComponentModel.TypeConverter(typeof(DatabasePrincipalAssignmentTypeConverter))] + public partial interface IDatabasePrincipalAssignment + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignment.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignment.TypeConverter.cs new file mode 100644 index 000000000000..3571e644650c --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignment.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DatabasePrincipalAssignmentTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DatabasePrincipalAssignment.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DatabasePrincipalAssignment.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DatabasePrincipalAssignment.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignment.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignment.cs new file mode 100644 index 000000000000..513912a62a2e --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignment.cs @@ -0,0 +1,219 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing a database principal assignment. + public partial class DatabasePrincipalAssignment : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(); + + /// The service principal object id in AAD (Azure active directory) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string AadObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).AadObjectId; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for AadObjectId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal.AadObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).AadObjectId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).AadObjectId = value; } + + /// Internal Acessors for PrincipalName + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal.PrincipalName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).PrincipalName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).PrincipalName = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for TenantName + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentInternal.TenantName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).TenantName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).TenantName = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; } + + /// + /// The principal ID assigned to the database principal. It can be a user email, application ID, or security group name. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string PrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).PrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).PrincipalId = value ?? null; } + + /// The principal name + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string PrincipalName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).PrincipalName; } + + /// Principal type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType? PrincipalType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).PrincipalType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).PrincipalType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalProperties _property; + + /// The database principal. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalProperties()); set => this._property = value; } + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).ProvisioningState; } + + /// Database principal role. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole? Role { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).Role; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).Role = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole)""); } + + /// The tenant id of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string TenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).TenantId = value ?? null; } + + /// The tenant name of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string TenantName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)Property).TenantName; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public DatabasePrincipalAssignment() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Class representing a database principal assignment. + public partial interface IDatabasePrincipalAssignment : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource + { + /// The service principal object id in AAD (Azure active directory) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The service principal object id in AAD (Azure active directory)", + SerializedName = @"aadObjectId", + PossibleTypes = new [] { typeof(string) })] + string AadObjectId { get; } + /// + /// The principal ID assigned to the database principal. It can be a user email, application ID, or security group name. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID assigned to the database principal. It can be a user email, application ID, or security group name.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string PrincipalId { get; set; } + /// The principal name + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The principal name", + SerializedName = @"principalName", + PossibleTypes = new [] { typeof(string) })] + string PrincipalName { get; } + /// Principal type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Principal type.", + SerializedName = @"principalType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType? PrincipalType { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// Database principal role. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Database principal role.", + SerializedName = @"role", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole? Role { get; set; } + /// The tenant id of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant id of the principal", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string TenantId { get; set; } + /// The tenant name of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The tenant name of the principal", + SerializedName = @"tenantName", + PossibleTypes = new [] { typeof(string) })] + string TenantName { get; } + + } + /// Class representing a database principal assignment. + internal partial interface IDatabasePrincipalAssignmentInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal + { + /// The service principal object id in AAD (Azure active directory) + string AadObjectId { get; set; } + /// + /// The principal ID assigned to the database principal. It can be a user email, application ID, or security group name. + /// + string PrincipalId { get; set; } + /// The principal name + string PrincipalName { get; set; } + /// Principal type. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType? PrincipalType { get; set; } + /// The database principal. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalProperties Property { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// Database principal role. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole? Role { get; set; } + /// The tenant id of the principal + string TenantId { get; set; } + /// The tenant name of the principal + string TenantName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignment.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignment.json.cs new file mode 100644 index 000000000000..5b200403c257 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignment.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing a database principal assignment. + public partial class DatabasePrincipalAssignment + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal DatabasePrincipalAssignment(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new DatabasePrincipalAssignment(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentCheckNameRequest.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentCheckNameRequest.PowerShell.cs new file mode 100644 index 000000000000..f17a69b973fc --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentCheckNameRequest.PowerShell.cs @@ -0,0 +1,153 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A principal assignment check name availability request. + [System.ComponentModel.TypeConverter(typeof(DatabasePrincipalAssignmentCheckNameRequestTypeConverter))] + public partial class DatabasePrincipalAssignmentCheckNameRequest + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DatabasePrincipalAssignmentCheckNameRequest(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequestInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequestInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DatabasePrincipalAssignmentCheckNameRequest(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequestInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequestInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DatabasePrincipalAssignmentCheckNameRequest(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DatabasePrincipalAssignmentCheckNameRequest(content); + } + + /// + /// Creates a new instance of , deserializing the content from a + /// json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A principal assignment check name availability request. + [System.ComponentModel.TypeConverter(typeof(DatabasePrincipalAssignmentCheckNameRequestTypeConverter))] + public partial interface IDatabasePrincipalAssignmentCheckNameRequest + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentCheckNameRequest.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentCheckNameRequest.TypeConverter.cs new file mode 100644 index 000000000000..88edcb64cbda --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentCheckNameRequest.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DatabasePrincipalAssignmentCheckNameRequestTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DatabasePrincipalAssignmentCheckNameRequest.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DatabasePrincipalAssignmentCheckNameRequest.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DatabasePrincipalAssignmentCheckNameRequest.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentCheckNameRequest.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentCheckNameRequest.cs new file mode 100644 index 000000000000..4c3efd23cc48 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentCheckNameRequest.cs @@ -0,0 +1,73 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A principal assignment check name availability request. + public partial class DatabasePrincipalAssignmentCheckNameRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequestInternal + { + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequestInternal.Type { get => this._type; set { {_type = value;} } } + + /// Backing field for property. + private string _name; + + /// Principal Assignment resource name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _type= @"Microsoft.Kusto/clusters/databases/principalAssignments"; + + /// The type of resource, Microsoft.Kusto/clusters/databases/principalAssignments. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Type { get => this._type; } + + /// + /// Creates an new instance. + /// + public DatabasePrincipalAssignmentCheckNameRequest() + { + + } + } + /// A principal assignment check name availability request. + public partial interface IDatabasePrincipalAssignmentCheckNameRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Principal Assignment resource name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Principal Assignment resource name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// The type of resource, Microsoft.Kusto/clusters/databases/principalAssignments. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = true, + Description = @"The type of resource, Microsoft.Kusto/clusters/databases/principalAssignments.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; } + + } + /// A principal assignment check name availability request. + internal partial interface IDatabasePrincipalAssignmentCheckNameRequestInternal + + { + /// Principal Assignment resource name. + string Name { get; set; } + /// The type of resource, Microsoft.Kusto/clusters/databases/principalAssignments. + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentCheckNameRequest.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentCheckNameRequest.json.cs new file mode 100644 index 000000000000..220a529097ed --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentCheckNameRequest.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A principal assignment check name availability request. + public partial class DatabasePrincipalAssignmentCheckNameRequest + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal DatabasePrincipalAssignmentCheckNameRequest(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new DatabasePrincipalAssignmentCheckNameRequest(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentListResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentListResult.PowerShell.cs new file mode 100644 index 000000000000..75263bc7b4ac --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentListResult.PowerShell.cs @@ -0,0 +1,145 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The list Kusto database principal assignments operation response. + [System.ComponentModel.TypeConverter(typeof(DatabasePrincipalAssignmentListResultTypeConverter))] + public partial class DatabasePrincipalAssignmentListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DatabasePrincipalAssignmentListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalAssignmentTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DatabasePrincipalAssignmentListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalAssignmentTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DatabasePrincipalAssignmentListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DatabasePrincipalAssignmentListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The list Kusto database principal assignments operation response. + [System.ComponentModel.TypeConverter(typeof(DatabasePrincipalAssignmentListResultTypeConverter))] + public partial interface IDatabasePrincipalAssignmentListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentListResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentListResult.TypeConverter.cs new file mode 100644 index 000000000000..daa0a272150c --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentListResult.TypeConverter.cs @@ -0,0 +1,149 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DatabasePrincipalAssignmentListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DatabasePrincipalAssignmentListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DatabasePrincipalAssignmentListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DatabasePrincipalAssignmentListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentListResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentListResult.cs new file mode 100644 index 000000000000..8e075dfdc442 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentListResult.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto database principal assignments operation response. + public partial class DatabasePrincipalAssignmentListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentListResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentListResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment[] _value; + + /// The list of Kusto database principal assignments. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public DatabasePrincipalAssignmentListResult() + { + + } + } + /// The list Kusto database principal assignments operation response. + public partial interface IDatabasePrincipalAssignmentListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The list of Kusto database principal assignments. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of Kusto database principal assignments.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment[] Value { get; set; } + + } + /// The list Kusto database principal assignments operation response. + internal partial interface IDatabasePrincipalAssignmentListResultInternal + + { + /// The list of Kusto database principal assignments. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentListResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentListResult.json.cs new file mode 100644 index 000000000000..f61d428c29b4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalAssignmentListResult.json.cs @@ -0,0 +1,115 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto database principal assignments operation response. + public partial class DatabasePrincipalAssignmentListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal DatabasePrincipalAssignmentListResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalAssignment.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new DatabasePrincipalAssignmentListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListRequest.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListRequest.PowerShell.cs new file mode 100644 index 000000000000..69890b34e3a2 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListRequest.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The list Kusto database principals operation request. + [System.ComponentModel.TypeConverter(typeof(DatabasePrincipalListRequestTypeConverter))] + public partial class DatabasePrincipalListRequest + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DatabasePrincipalListRequest(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequestInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequestInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DatabasePrincipalListRequest(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequestInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequestInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DatabasePrincipalListRequest(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DatabasePrincipalListRequest(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The list Kusto database principals operation request. + [System.ComponentModel.TypeConverter(typeof(DatabasePrincipalListRequestTypeConverter))] + public partial interface IDatabasePrincipalListRequest + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListRequest.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListRequest.TypeConverter.cs new file mode 100644 index 000000000000..42b845ac9ec7 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListRequest.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DatabasePrincipalListRequestTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DatabasePrincipalListRequest.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DatabasePrincipalListRequest.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DatabasePrincipalListRequest.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListRequest.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListRequest.cs new file mode 100644 index 000000000000..0fbd33633335 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListRequest.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto database principals operation request. + public partial class DatabasePrincipalListRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequestInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[] _value; + + /// The list of Kusto database principals. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public DatabasePrincipalListRequest() + { + + } + } + /// The list Kusto database principals operation request. + public partial interface IDatabasePrincipalListRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The list of Kusto database principals. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of Kusto database principals.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[] Value { get; set; } + + } + /// The list Kusto database principals operation request. + internal partial interface IDatabasePrincipalListRequestInternal + + { + /// The list of Kusto database principals. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListRequest.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListRequest.json.cs new file mode 100644 index 000000000000..8804ed0f13eb --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListRequest.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto database principals operation request. + public partial class DatabasePrincipalListRequest + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal DatabasePrincipalListRequest(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipal.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new DatabasePrincipalListRequest(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListResult.PowerShell.cs new file mode 100644 index 000000000000..b38a0dc97750 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListResult.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The list Kusto database principals operation response. + [System.ComponentModel.TypeConverter(typeof(DatabasePrincipalListResultTypeConverter))] + public partial class DatabasePrincipalListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DatabasePrincipalListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DatabasePrincipalListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DatabasePrincipalListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DatabasePrincipalListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The list Kusto database principals operation response. + [System.ComponentModel.TypeConverter(typeof(DatabasePrincipalListResultTypeConverter))] + public partial interface IDatabasePrincipalListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListResult.TypeConverter.cs new file mode 100644 index 000000000000..c6c97c284a92 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DatabasePrincipalListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DatabasePrincipalListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DatabasePrincipalListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DatabasePrincipalListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListResult.cs new file mode 100644 index 000000000000..a249ec0734eb --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListResult.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto database principals operation response. + public partial class DatabasePrincipalListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[] _value; + + /// The list of Kusto database principals. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public DatabasePrincipalListResult() + { + + } + } + /// The list Kusto database principals operation response. + public partial interface IDatabasePrincipalListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The list of Kusto database principals. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of Kusto database principals.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[] Value { get; set; } + + } + /// The list Kusto database principals operation response. + internal partial interface IDatabasePrincipalListResultInternal + + { + /// The list of Kusto database principals. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListResult.json.cs new file mode 100644 index 000000000000..91ab0f5039a1 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalListResult.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto database principals operation response. + public partial class DatabasePrincipalListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal DatabasePrincipalListResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipal.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new DatabasePrincipalListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalProperties.PowerShell.cs new file mode 100644 index 000000000000..35fc4f261dd4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalProperties.PowerShell.cs @@ -0,0 +1,198 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A class representing database principal property. + [System.ComponentModel.TypeConverter(typeof(DatabasePrincipalPropertiesTypeConverter))] + public partial class DatabasePrincipalProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DatabasePrincipalProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("Role")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).Role = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole) content.GetValueForProperty("Role",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).Role, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole.CreateFrom); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("PrincipalType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).PrincipalType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType) content.GetValueForProperty("PrincipalType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).PrincipalType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType.CreateFrom); + } + if (content.Contains("TenantName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).TenantName = (string) content.GetValueForProperty("TenantName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).TenantName, global::System.Convert.ToString); + } + if (content.Contains("PrincipalName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).PrincipalName = (string) content.GetValueForProperty("PrincipalName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).PrincipalName, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("AadObjectId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).AadObjectId = (string) content.GetValueForProperty("AadObjectId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).AadObjectId, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DatabasePrincipalProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("Role")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).Role = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole) content.GetValueForProperty("Role",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).Role, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole.CreateFrom); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("PrincipalType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).PrincipalType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType) content.GetValueForProperty("PrincipalType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).PrincipalType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType.CreateFrom); + } + if (content.Contains("TenantName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).TenantName = (string) content.GetValueForProperty("TenantName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).TenantName, global::System.Convert.ToString); + } + if (content.Contains("PrincipalName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).PrincipalName = (string) content.GetValueForProperty("PrincipalName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).PrincipalName, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("AadObjectId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).AadObjectId = (string) content.GetValueForProperty("AadObjectId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal)this).AadObjectId, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DatabasePrincipalProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DatabasePrincipalProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A class representing database principal property. + [System.ComponentModel.TypeConverter(typeof(DatabasePrincipalPropertiesTypeConverter))] + public partial interface IDatabasePrincipalProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalProperties.TypeConverter.cs new file mode 100644 index 000000000000..e3e5c6789e51 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DatabasePrincipalPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DatabasePrincipalProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DatabasePrincipalProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DatabasePrincipalProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalProperties.cs new file mode 100644 index 000000000000..2b032b0d892f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalProperties.cs @@ -0,0 +1,188 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class representing database principal property. + public partial class DatabasePrincipalProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal + { + + /// Backing field for property. + private string _aadObjectId; + + /// The service principal object id in AAD (Azure active directory) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string AadObjectId { get => this._aadObjectId; } + + /// Internal Acessors for AadObjectId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal.AadObjectId { get => this._aadObjectId; set { {_aadObjectId = value;} } } + + /// Internal Acessors for PrincipalName + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal.PrincipalName { get => this._principalName; set { {_principalName = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for TenantName + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalPropertiesInternal.TenantName { get => this._tenantName; set { {_tenantName = value;} } } + + /// Backing field for property. + private string _principalId; + + /// + /// The principal ID assigned to the database principal. It can be a user email, application ID, or security group name. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string PrincipalId { get => this._principalId; set => this._principalId = value; } + + /// Backing field for property. + private string _principalName; + + /// The principal name + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string PrincipalName { get => this._principalName; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType _principalType; + + /// Principal type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType PrincipalType { get => this._principalType; set => this._principalType = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? _provisioningState; + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole _role; + + /// Database principal role. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole Role { get => this._role; set => this._role = value; } + + /// Backing field for property. + private string _tenantId; + + /// The tenant id of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string TenantId { get => this._tenantId; set => this._tenantId = value; } + + /// Backing field for property. + private string _tenantName; + + /// The tenant name of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string TenantName { get => this._tenantName; } + + /// Creates an new instance. + public DatabasePrincipalProperties() + { + + } + } + /// A class representing database principal property. + public partial interface IDatabasePrincipalProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The service principal object id in AAD (Azure active directory) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The service principal object id in AAD (Azure active directory)", + SerializedName = @"aadObjectId", + PossibleTypes = new [] { typeof(string) })] + string AadObjectId { get; } + /// + /// The principal ID assigned to the database principal. It can be a user email, application ID, or security group name. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The principal ID assigned to the database principal. It can be a user email, application ID, or security group name.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string PrincipalId { get; set; } + /// The principal name + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The principal name", + SerializedName = @"principalName", + PossibleTypes = new [] { typeof(string) })] + string PrincipalName { get; } + /// Principal type. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Principal type.", + SerializedName = @"principalType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType PrincipalType { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// Database principal role. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Database principal role.", + SerializedName = @"role", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole Role { get; set; } + /// The tenant id of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant id of the principal", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string TenantId { get; set; } + /// The tenant name of the principal + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The tenant name of the principal", + SerializedName = @"tenantName", + PossibleTypes = new [] { typeof(string) })] + string TenantName { get; } + + } + /// A class representing database principal property. + internal partial interface IDatabasePrincipalPropertiesInternal + + { + /// The service principal object id in AAD (Azure active directory) + string AadObjectId { get; set; } + /// + /// The principal ID assigned to the database principal. It can be a user email, application ID, or security group name. + /// + string PrincipalId { get; set; } + /// The principal name + string PrincipalName { get; set; } + /// Principal type. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType PrincipalType { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// Database principal role. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole Role { get; set; } + /// The tenant id of the principal + string TenantId { get; set; } + /// The tenant name of the principal + string TenantName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalProperties.json.cs new file mode 100644 index 000000000000..fb9894f7e365 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabasePrincipalProperties.json.cs @@ -0,0 +1,132 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class representing database principal property. + public partial class DatabasePrincipalProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal DatabasePrincipalProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_principalId = If( json?.PropertyT("principalId"), out var __jsonPrincipalId) ? (string)__jsonPrincipalId : (string)PrincipalId;} + {_role = If( json?.PropertyT("role"), out var __jsonRole) ? (string)__jsonRole : (string)Role;} + {_tenantId = If( json?.PropertyT("tenantId"), out var __jsonTenantId) ? (string)__jsonTenantId : (string)TenantId;} + {_principalType = If( json?.PropertyT("principalType"), out var __jsonPrincipalType) ? (string)__jsonPrincipalType : (string)PrincipalType;} + {_tenantName = If( json?.PropertyT("tenantName"), out var __jsonTenantName) ? (string)__jsonTenantName : (string)TenantName;} + {_principalName = If( json?.PropertyT("principalName"), out var __jsonPrincipalName) ? (string)__jsonPrincipalName : (string)PrincipalName;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_aadObjectId = If( json?.PropertyT("aadObjectId"), out var __jsonAadObjectId) ? (string)__jsonAadObjectId : (string)AadObjectId;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new DatabasePrincipalProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._principalId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._principalId.ToString()) : null, "principalId" ,container.Add ); + AddIf( null != (((object)this._role)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._role.ToString()) : null, "role" ,container.Add ); + AddIf( null != (((object)this._tenantId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._tenantId.ToString()) : null, "tenantId" ,container.Add ); + AddIf( null != (((object)this._principalType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._principalType.ToString()) : null, "principalType" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._tenantName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._tenantName.ToString()) : null, "tenantName" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._principalName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._principalName.ToString()) : null, "principalName" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._aadObjectId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._aadObjectId.ToString()) : null, "aadObjectId" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseStatistics.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseStatistics.PowerShell.cs new file mode 100644 index 000000000000..ff0d62f02ff3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseStatistics.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A class that contains database statistics information. + [System.ComponentModel.TypeConverter(typeof(DatabaseStatisticsTypeConverter))] + public partial class DatabaseStatistics + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DatabaseStatistics(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Size")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatisticsInternal)this).Size = (float?) content.GetValueForProperty("Size",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatisticsInternal)this).Size, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DatabaseStatistics(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Size")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatisticsInternal)this).Size = (float?) content.GetValueForProperty("Size",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatisticsInternal)this).Size, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DatabaseStatistics(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DatabaseStatistics(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A class that contains database statistics information. + [System.ComponentModel.TypeConverter(typeof(DatabaseStatisticsTypeConverter))] + public partial interface IDatabaseStatistics + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseStatistics.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseStatistics.TypeConverter.cs new file mode 100644 index 000000000000..bbbce5137a3f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseStatistics.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DatabaseStatisticsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DatabaseStatistics.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DatabaseStatistics.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DatabaseStatistics.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseStatistics.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseStatistics.cs new file mode 100644 index 000000000000..b6d2f2917ae5 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseStatistics.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class that contains database statistics information. + public partial class DatabaseStatistics : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatisticsInternal + { + + /// Backing field for property. + private float? _size; + + /// The database size - the total size of compressed data and index in bytes. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public float? Size { get => this._size; set => this._size = value; } + + /// Creates an new instance. + public DatabaseStatistics() + { + + } + } + /// A class that contains database statistics information. + public partial interface IDatabaseStatistics : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The database size - the total size of compressed data and index in bytes. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The database size - the total size of compressed data and index in bytes.", + SerializedName = @"size", + PossibleTypes = new [] { typeof(float) })] + float? Size { get; set; } + + } + /// A class that contains database statistics information. + internal partial interface IDatabaseStatisticsInternal + + { + /// The database size - the total size of compressed data and index in bytes. + float? Size { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseStatistics.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseStatistics.json.cs new file mode 100644 index 000000000000..123fa21510f9 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DatabaseStatistics.json.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class that contains database statistics information. + public partial class DatabaseStatistics + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal DatabaseStatistics(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_size = If( json?.PropertyT("size"), out var __jsonSize) ? (float?)__jsonSize : Size;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new DatabaseStatistics(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._size ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNumber((float)this._size) : null, "size" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DiagnoseVirtualNetworkResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DiagnoseVirtualNetworkResult.PowerShell.cs new file mode 100644 index 000000000000..34b5e76ea69d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DiagnoseVirtualNetworkResult.PowerShell.cs @@ -0,0 +1,140 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(DiagnoseVirtualNetworkResultTypeConverter))] + public partial class DiagnoseVirtualNetworkResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDiagnoseVirtualNetworkResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DiagnoseVirtualNetworkResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDiagnoseVirtualNetworkResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DiagnoseVirtualNetworkResult(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DiagnoseVirtualNetworkResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Finding")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDiagnoseVirtualNetworkResultInternal)this).Finding = (string[]) content.GetValueForProperty("Finding",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDiagnoseVirtualNetworkResultInternal)this).Finding, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DiagnoseVirtualNetworkResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Finding")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDiagnoseVirtualNetworkResultInternal)this).Finding = (string[]) content.GetValueForProperty("Finding",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDiagnoseVirtualNetworkResultInternal)this).Finding, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDiagnoseVirtualNetworkResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(DiagnoseVirtualNetworkResultTypeConverter))] + public partial interface IDiagnoseVirtualNetworkResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DiagnoseVirtualNetworkResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DiagnoseVirtualNetworkResult.TypeConverter.cs new file mode 100644 index 000000000000..f769cbb40aa0 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DiagnoseVirtualNetworkResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DiagnoseVirtualNetworkResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDiagnoseVirtualNetworkResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDiagnoseVirtualNetworkResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DiagnoseVirtualNetworkResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DiagnoseVirtualNetworkResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DiagnoseVirtualNetworkResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DiagnoseVirtualNetworkResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DiagnoseVirtualNetworkResult.cs new file mode 100644 index 000000000000..dec1c13816dd --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DiagnoseVirtualNetworkResult.cs @@ -0,0 +1,48 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + public partial class DiagnoseVirtualNetworkResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDiagnoseVirtualNetworkResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDiagnoseVirtualNetworkResultInternal + { + + /// Backing field for property. + private string[] _finding; + + /// The list of network connectivity diagnostic finding + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string[] Finding { get => this._finding; set => this._finding = value; } + + /// Creates an new instance. + public DiagnoseVirtualNetworkResult() + { + + } + } + public partial interface IDiagnoseVirtualNetworkResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The list of network connectivity diagnostic finding + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of network connectivity diagnostic finding", + SerializedName = @"findings", + PossibleTypes = new [] { typeof(string) })] + string[] Finding { get; set; } + + } + internal partial interface IDiagnoseVirtualNetworkResultInternal + + { + /// The list of network connectivity diagnostic finding + string[] Finding { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/DiagnoseVirtualNetworkResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DiagnoseVirtualNetworkResult.json.cs new file mode 100644 index 000000000000..8b3f3fe88d91 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/DiagnoseVirtualNetworkResult.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + public partial class DiagnoseVirtualNetworkResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal DiagnoseVirtualNetworkResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_finding = If( json?.PropertyT("findings"), out var __jsonFindings) ? If( __jsonFindings as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(string) (__u is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Finding;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDiagnoseVirtualNetworkResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDiagnoseVirtualNetworkResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDiagnoseVirtualNetworkResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new DiagnoseVirtualNetworkResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._finding) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._finding ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("findings",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDependency.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDependency.PowerShell.cs new file mode 100644 index 000000000000..7ea7ddfb1828 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDependency.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A domain name that a service is reached at, including details of the current connection status. + /// + [System.ComponentModel.TypeConverter(typeof(EndpointDependencyTypeConverter))] + public partial class EndpointDependency + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EndpointDependency(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EndpointDependency(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EndpointDependency(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("DomainName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependencyInternal)this).DomainName = (string) content.GetValueForProperty("DomainName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependencyInternal)this).DomainName, global::System.Convert.ToString); + } + if (content.Contains("EndpointDetail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependencyInternal)this).EndpointDetail = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetail[]) content.GetValueForProperty("EndpointDetail",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependencyInternal)this).EndpointDetail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EndpointDetailTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EndpointDependency(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("DomainName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependencyInternal)this).DomainName = (string) content.GetValueForProperty("DomainName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependencyInternal)this).DomainName, global::System.Convert.ToString); + } + if (content.Contains("EndpointDetail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependencyInternal)this).EndpointDetail = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetail[]) content.GetValueForProperty("EndpointDetail",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependencyInternal)this).EndpointDetail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EndpointDetailTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A domain name that a service is reached at, including details of the current connection status. + [System.ComponentModel.TypeConverter(typeof(EndpointDependencyTypeConverter))] + public partial interface IEndpointDependency + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDependency.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDependency.TypeConverter.cs new file mode 100644 index 000000000000..81621b45c3b1 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDependency.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EndpointDependencyTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EndpointDependency.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EndpointDependency.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EndpointDependency.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDependency.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDependency.cs new file mode 100644 index 000000000000..eb18c052c140 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDependency.cs @@ -0,0 +1,70 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// A domain name that a service is reached at, including details of the current connection status. + /// + public partial class EndpointDependency : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependencyInternal + { + + /// Backing field for property. + private string _domainName; + + /// The domain name of the dependency. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetail[] _endpointDetail; + + /// The ports used when connecting to DomainName. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetail[] EndpointDetail { get => this._endpointDetail; set => this._endpointDetail = value; } + + /// Creates an new instance. + public EndpointDependency() + { + + } + } + /// A domain name that a service is reached at, including details of the current connection status. + public partial interface IEndpointDependency : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The domain name of the dependency. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The domain name of the dependency.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + string DomainName { get; set; } + /// The ports used when connecting to DomainName. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ports used when connecting to DomainName.", + SerializedName = @"endpointDetails", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetail) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetail[] EndpointDetail { get; set; } + + } + /// A domain name that a service is reached at, including details of the current connection status. + internal partial interface IEndpointDependencyInternal + + { + /// The domain name of the dependency. + string DomainName { get; set; } + /// The ports used when connecting to DomainName. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetail[] EndpointDetail { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDependency.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDependency.json.cs new file mode 100644 index 000000000000..fde7577adb93 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDependency.json.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// A domain name that a service is reached at, including details of the current connection status. + /// + public partial class EndpointDependency + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal EndpointDependency(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_domainName = If( json?.PropertyT("domainName"), out var __jsonDomainName) ? (string)__jsonDomainName : (string)DomainName;} + {_endpointDetail = If( json?.PropertyT("endpointDetails"), out var __jsonEndpointDetails) ? If( __jsonEndpointDetails as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetail) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EndpointDetail.FromJson(__u) )) ))() : null : EndpointDetail;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new EndpointDependency(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._domainName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._domainName.ToString()) : null, "domainName" ,container.Add ); + if (null != this._endpointDetail) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._endpointDetail ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("endpointDetails",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDetail.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDetail.PowerShell.cs new file mode 100644 index 000000000000..49521c584744 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDetail.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// Current TCP connectivity information from the Kusto cluster to a single endpoint. + /// + [System.ComponentModel.TypeConverter(typeof(EndpointDetailTypeConverter))] + public partial class EndpointDetail + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetail DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EndpointDetail(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetail DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EndpointDetail(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EndpointDetail(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Port")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetailInternal)this).Port = (int?) content.GetValueForProperty("Port",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetailInternal)this).Port, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EndpointDetail(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Port")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetailInternal)this).Port = (int?) content.GetValueForProperty("Port",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetailInternal)this).Port, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetail FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Current TCP connectivity information from the Kusto cluster to a single endpoint. + [System.ComponentModel.TypeConverter(typeof(EndpointDetailTypeConverter))] + public partial interface IEndpointDetail + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDetail.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDetail.TypeConverter.cs new file mode 100644 index 000000000000..15ec79f47b75 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDetail.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EndpointDetailTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetail ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetail).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EndpointDetail.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EndpointDetail.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EndpointDetail.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDetail.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDetail.cs new file mode 100644 index 000000000000..799b932d8db7 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDetail.cs @@ -0,0 +1,53 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// Current TCP connectivity information from the Kusto cluster to a single endpoint. + /// + public partial class EndpointDetail : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetail, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetailInternal + { + + /// Backing field for property. + private int? _port; + + /// The port an endpoint is connected to. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public int? Port { get => this._port; set => this._port = value; } + + /// Creates an new instance. + public EndpointDetail() + { + + } + } + /// Current TCP connectivity information from the Kusto cluster to a single endpoint. + public partial interface IEndpointDetail : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The port an endpoint is connected to. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The port an endpoint is connected to.", + SerializedName = @"port", + PossibleTypes = new [] { typeof(int) })] + int? Port { get; set; } + + } + /// Current TCP connectivity information from the Kusto cluster to a single endpoint. + internal partial interface IEndpointDetailInternal + + { + /// The port an endpoint is connected to. + int? Port { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDetail.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDetail.json.cs new file mode 100644 index 000000000000..8febdbd8b495 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EndpointDetail.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// Current TCP connectivity information from the Kusto cluster to a single endpoint. + /// + public partial class EndpointDetail + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal EndpointDetail(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_port = If( json?.PropertyT("port"), out var __jsonPort) ? (int?)__jsonPort : Port;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetail. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetail. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDetail FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new EndpointDetail(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._port ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNumber((int)this._port) : null, "port" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridConnectionProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridConnectionProperties.PowerShell.cs new file mode 100644 index 000000000000..d67508a24b71 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridConnectionProperties.PowerShell.cs @@ -0,0 +1,240 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing the Kusto event grid connection properties. + [System.ComponentModel.TypeConverter(typeof(EventGridConnectionPropertiesTypeConverter))] + public partial class EventGridConnectionProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventGridConnectionProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventGridConnectionProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventGridConnectionProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("StorageAccountResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).StorageAccountResourceId = (string) content.GetValueForProperty("StorageAccountResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).StorageAccountResourceId, global::System.Convert.ToString); + } + if (content.Contains("EventGridResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).EventGridResourceId = (string) content.GetValueForProperty("EventGridResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).EventGridResourceId, global::System.Convert.ToString); + } + if (content.Contains("EventHubResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).EventHubResourceId = (string) content.GetValueForProperty("EventHubResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).EventHubResourceId, global::System.Convert.ToString); + } + if (content.Contains("ConsumerGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).ConsumerGroup = (string) content.GetValueForProperty("ConsumerGroup",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).ConsumerGroup, global::System.Convert.ToString); + } + if (content.Contains("TableName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).TableName = (string) content.GetValueForProperty("TableName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).TableName, global::System.Convert.ToString); + } + if (content.Contains("MappingRuleName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).MappingRuleName = (string) content.GetValueForProperty("MappingRuleName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).MappingRuleName, global::System.Convert.ToString); + } + if (content.Contains("DataFormat")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).DataFormat = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat?) content.GetValueForProperty("DataFormat",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).DataFormat, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat.CreateFrom); + } + if (content.Contains("IgnoreFirstRecord")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).IgnoreFirstRecord = (bool?) content.GetValueForProperty("IgnoreFirstRecord",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).IgnoreFirstRecord, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("BlobStorageEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).BlobStorageEventType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType?) content.GetValueForProperty("BlobStorageEventType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).BlobStorageEventType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType.CreateFrom); + } + if (content.Contains("ManagedIdentityResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).ManagedIdentityResourceId = (string) content.GetValueForProperty("ManagedIdentityResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).ManagedIdentityResourceId, global::System.Convert.ToString); + } + if (content.Contains("ManagedIdentityObjectId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).ManagedIdentityObjectId = (string) content.GetValueForProperty("ManagedIdentityObjectId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).ManagedIdentityObjectId, global::System.Convert.ToString); + } + if (content.Contains("DatabaseRouting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).DatabaseRouting = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting?) content.GetValueForProperty("DatabaseRouting",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).DatabaseRouting, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventGridConnectionProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("StorageAccountResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).StorageAccountResourceId = (string) content.GetValueForProperty("StorageAccountResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).StorageAccountResourceId, global::System.Convert.ToString); + } + if (content.Contains("EventGridResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).EventGridResourceId = (string) content.GetValueForProperty("EventGridResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).EventGridResourceId, global::System.Convert.ToString); + } + if (content.Contains("EventHubResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).EventHubResourceId = (string) content.GetValueForProperty("EventHubResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).EventHubResourceId, global::System.Convert.ToString); + } + if (content.Contains("ConsumerGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).ConsumerGroup = (string) content.GetValueForProperty("ConsumerGroup",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).ConsumerGroup, global::System.Convert.ToString); + } + if (content.Contains("TableName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).TableName = (string) content.GetValueForProperty("TableName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).TableName, global::System.Convert.ToString); + } + if (content.Contains("MappingRuleName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).MappingRuleName = (string) content.GetValueForProperty("MappingRuleName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).MappingRuleName, global::System.Convert.ToString); + } + if (content.Contains("DataFormat")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).DataFormat = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat?) content.GetValueForProperty("DataFormat",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).DataFormat, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat.CreateFrom); + } + if (content.Contains("IgnoreFirstRecord")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).IgnoreFirstRecord = (bool?) content.GetValueForProperty("IgnoreFirstRecord",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).IgnoreFirstRecord, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("BlobStorageEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).BlobStorageEventType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType?) content.GetValueForProperty("BlobStorageEventType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).BlobStorageEventType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType.CreateFrom); + } + if (content.Contains("ManagedIdentityResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).ManagedIdentityResourceId = (string) content.GetValueForProperty("ManagedIdentityResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).ManagedIdentityResourceId, global::System.Convert.ToString); + } + if (content.Contains("ManagedIdentityObjectId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).ManagedIdentityObjectId = (string) content.GetValueForProperty("ManagedIdentityObjectId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).ManagedIdentityObjectId, global::System.Convert.ToString); + } + if (content.Contains("DatabaseRouting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).DatabaseRouting = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting?) content.GetValueForProperty("DatabaseRouting",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).DatabaseRouting, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing the Kusto event grid connection properties. + [System.ComponentModel.TypeConverter(typeof(EventGridConnectionPropertiesTypeConverter))] + public partial interface IEventGridConnectionProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridConnectionProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridConnectionProperties.TypeConverter.cs new file mode 100644 index 000000000000..99d5339e17ac --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridConnectionProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventGridConnectionPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventGridConnectionProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventGridConnectionProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventGridConnectionProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridConnectionProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridConnectionProperties.cs new file mode 100644 index 000000000000..646e9a3664a3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridConnectionProperties.cs @@ -0,0 +1,309 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing the Kusto event grid connection properties. + public partial class EventGridConnectionProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType? _blobStorageEventType; + + /// The name of blob storage event type to process. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType? BlobStorageEventType { get => this._blobStorageEventType; set => this._blobStorageEventType = value; } + + /// Backing field for property. + private string _consumerGroup; + + /// The event hub consumer group. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ConsumerGroup { get => this._consumerGroup; set => this._consumerGroup = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat? _dataFormat; + + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat? DataFormat { get => this._dataFormat; set => this._dataFormat = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? _databaseRouting; + + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get => this._databaseRouting; set => this._databaseRouting = value; } + + /// Backing field for property. + private string _eventGridResourceId; + + /// + /// The resource ID of the event grid that is subscribed to the storage account events. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string EventGridResourceId { get => this._eventGridResourceId; set => this._eventGridResourceId = value; } + + /// Backing field for property. + private string _eventHubResourceId; + + /// The resource ID where the event grid is configured to send events. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string EventHubResourceId { get => this._eventHubResourceId; set => this._eventHubResourceId = value; } + + /// Backing field for property. + private bool? _ignoreFirstRecord; + + /// + /// A Boolean value that, if set to true, indicates that ingestion should ignore the first record of every file + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public bool? IgnoreFirstRecord { get => this._ignoreFirstRecord; set => this._ignoreFirstRecord = value; } + + /// Backing field for property. + private string _managedIdentityObjectId; + + /// The object ID of managedIdentityResourceId + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ManagedIdentityObjectId { get => this._managedIdentityObjectId; } + + /// Backing field for property. + private string _managedIdentityResourceId; + + /// + /// Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user + /// assigned identity (UAI) provide the UAI resource Id. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ManagedIdentityResourceId { get => this._managedIdentityResourceId; set => this._managedIdentityResourceId = value; } + + /// Backing field for property. + private string _mappingRuleName; + + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string MappingRuleName { get => this._mappingRuleName; set => this._mappingRuleName = value; } + + /// Internal Acessors for ManagedIdentityObjectId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal.ManagedIdentityObjectId { get => this._managedIdentityObjectId; set { {_managedIdentityObjectId = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? _provisioningState; + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private string _storageAccountResourceId; + + /// The resource ID of the storage account where the data resides. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string StorageAccountResourceId { get => this._storageAccountResourceId; set => this._storageAccountResourceId = value; } + + /// Backing field for property. + private string _tableName; + + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string TableName { get => this._tableName; set => this._tableName = value; } + + /// Creates an new instance. + public EventGridConnectionProperties() + { + + } + } + /// Class representing the Kusto event grid connection properties. + public partial interface IEventGridConnectionProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The name of blob storage event type to process. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of blob storage event type to process.", + SerializedName = @"blobStorageEventType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType? BlobStorageEventType { get; set; } + /// The event hub consumer group. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The event hub consumer group.", + SerializedName = @"consumerGroup", + PossibleTypes = new [] { typeof(string) })] + string ConsumerGroup { get; set; } + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The data format of the message. Optionally the data format can be added to each message.", + SerializedName = @"dataFormat", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat? DataFormat { get; set; } + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indication for database routing information from the data connection, by default only database routing information is allowed", + SerializedName = @"databaseRouting", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get; set; } + /// + /// The resource ID of the event grid that is subscribed to the storage account events. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource ID of the event grid that is subscribed to the storage account events.", + SerializedName = @"eventGridResourceId", + PossibleTypes = new [] { typeof(string) })] + string EventGridResourceId { get; set; } + /// The resource ID where the event grid is configured to send events. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The resource ID where the event grid is configured to send events.", + SerializedName = @"eventHubResourceId", + PossibleTypes = new [] { typeof(string) })] + string EventHubResourceId { get; set; } + /// + /// A Boolean value that, if set to true, indicates that ingestion should ignore the first record of every file + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A Boolean value that, if set to true, indicates that ingestion should ignore the first record of every file", + SerializedName = @"ignoreFirstRecord", + PossibleTypes = new [] { typeof(bool) })] + bool? IgnoreFirstRecord { get; set; } + /// The object ID of managedIdentityResourceId + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The object ID of managedIdentityResourceId", + SerializedName = @"managedIdentityObjectId", + PossibleTypes = new [] { typeof(string) })] + string ManagedIdentityObjectId { get; } + /// + /// Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user + /// assigned identity (UAI) provide the UAI resource Id. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user assigned identity (UAI) provide the UAI resource Id.", + SerializedName = @"managedIdentityResourceId", + PossibleTypes = new [] { typeof(string) })] + string ManagedIdentityResourceId { get; set; } + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.", + SerializedName = @"mappingRuleName", + PossibleTypes = new [] { typeof(string) })] + string MappingRuleName { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// The resource ID of the storage account where the data resides. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The resource ID of the storage account where the data resides.", + SerializedName = @"storageAccountResourceId", + PossibleTypes = new [] { typeof(string) })] + string StorageAccountResourceId { get; set; } + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The table where the data should be ingested. Optionally the table information can be added to each message.", + SerializedName = @"tableName", + PossibleTypes = new [] { typeof(string) })] + string TableName { get; set; } + + } + /// Class representing the Kusto event grid connection properties. + internal partial interface IEventGridConnectionPropertiesInternal + + { + /// The name of blob storage event type to process. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType? BlobStorageEventType { get; set; } + /// The event hub consumer group. + string ConsumerGroup { get; set; } + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat? DataFormat { get; set; } + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get; set; } + /// + /// The resource ID of the event grid that is subscribed to the storage account events. + /// + string EventGridResourceId { get; set; } + /// The resource ID where the event grid is configured to send events. + string EventHubResourceId { get; set; } + /// + /// A Boolean value that, if set to true, indicates that ingestion should ignore the first record of every file + /// + bool? IgnoreFirstRecord { get; set; } + /// The object ID of managedIdentityResourceId + string ManagedIdentityObjectId { get; set; } + /// + /// Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user + /// assigned identity (UAI) provide the UAI resource Id. + /// + string ManagedIdentityResourceId { get; set; } + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + string MappingRuleName { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// The resource ID of the storage account where the data resides. + string StorageAccountResourceId { get; set; } + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + string TableName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridConnectionProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridConnectionProperties.json.cs new file mode 100644 index 000000000000..16032a5e8024 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridConnectionProperties.json.cs @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing the Kusto event grid connection properties. + public partial class EventGridConnectionProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal EventGridConnectionProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_storageAccountResourceId = If( json?.PropertyT("storageAccountResourceId"), out var __jsonStorageAccountResourceId) ? (string)__jsonStorageAccountResourceId : (string)StorageAccountResourceId;} + {_eventGridResourceId = If( json?.PropertyT("eventGridResourceId"), out var __jsonEventGridResourceId) ? (string)__jsonEventGridResourceId : (string)EventGridResourceId;} + {_eventHubResourceId = If( json?.PropertyT("eventHubResourceId"), out var __jsonEventHubResourceId) ? (string)__jsonEventHubResourceId : (string)EventHubResourceId;} + {_consumerGroup = If( json?.PropertyT("consumerGroup"), out var __jsonConsumerGroup) ? (string)__jsonConsumerGroup : (string)ConsumerGroup;} + {_tableName = If( json?.PropertyT("tableName"), out var __jsonTableName) ? (string)__jsonTableName : (string)TableName;} + {_mappingRuleName = If( json?.PropertyT("mappingRuleName"), out var __jsonMappingRuleName) ? (string)__jsonMappingRuleName : (string)MappingRuleName;} + {_dataFormat = If( json?.PropertyT("dataFormat"), out var __jsonDataFormat) ? (string)__jsonDataFormat : (string)DataFormat;} + {_ignoreFirstRecord = If( json?.PropertyT("ignoreFirstRecord"), out var __jsonIgnoreFirstRecord) ? (bool?)__jsonIgnoreFirstRecord : IgnoreFirstRecord;} + {_blobStorageEventType = If( json?.PropertyT("blobStorageEventType"), out var __jsonBlobStorageEventType) ? (string)__jsonBlobStorageEventType : (string)BlobStorageEventType;} + {_managedIdentityResourceId = If( json?.PropertyT("managedIdentityResourceId"), out var __jsonManagedIdentityResourceId) ? (string)__jsonManagedIdentityResourceId : (string)ManagedIdentityResourceId;} + {_managedIdentityObjectId = If( json?.PropertyT("managedIdentityObjectId"), out var __jsonManagedIdentityObjectId) ? (string)__jsonManagedIdentityObjectId : (string)ManagedIdentityObjectId;} + {_databaseRouting = If( json?.PropertyT("databaseRouting"), out var __jsonDatabaseRouting) ? (string)__jsonDatabaseRouting : (string)DatabaseRouting;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new EventGridConnectionProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._storageAccountResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._storageAccountResourceId.ToString()) : null, "storageAccountResourceId" ,container.Add ); + AddIf( null != (((object)this._eventGridResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._eventGridResourceId.ToString()) : null, "eventGridResourceId" ,container.Add ); + AddIf( null != (((object)this._eventHubResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._eventHubResourceId.ToString()) : null, "eventHubResourceId" ,container.Add ); + AddIf( null != (((object)this._consumerGroup)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._consumerGroup.ToString()) : null, "consumerGroup" ,container.Add ); + AddIf( null != (((object)this._tableName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._tableName.ToString()) : null, "tableName" ,container.Add ); + AddIf( null != (((object)this._mappingRuleName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._mappingRuleName.ToString()) : null, "mappingRuleName" ,container.Add ); + AddIf( null != (((object)this._dataFormat)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._dataFormat.ToString()) : null, "dataFormat" ,container.Add ); + AddIf( null != this._ignoreFirstRecord ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonBoolean((bool)this._ignoreFirstRecord) : null, "ignoreFirstRecord" ,container.Add ); + AddIf( null != (((object)this._blobStorageEventType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._blobStorageEventType.ToString()) : null, "blobStorageEventType" ,container.Add ); + AddIf( null != (((object)this._managedIdentityResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._managedIdentityResourceId.ToString()) : null, "managedIdentityResourceId" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._managedIdentityObjectId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._managedIdentityObjectId.ToString()) : null, "managedIdentityObjectId" ,container.Add ); + } + AddIf( null != (((object)this._databaseRouting)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._databaseRouting.ToString()) : null, "databaseRouting" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridDataConnection.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridDataConnection.PowerShell.cs new file mode 100644 index 000000000000..6dd38ffe0263 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridDataConnection.PowerShell.cs @@ -0,0 +1,294 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing an Event Grid data connection. + [System.ComponentModel.TypeConverter(typeof(EventGridDataConnectionTypeConverter))] + public partial class EventGridDataConnection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventGridDataConnection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventGridDataConnection(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventGridDataConnection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventGridConnectionPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind.CreateFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("DatabaseRouting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).DatabaseRouting = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting?) content.GetValueForProperty("DatabaseRouting",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).DatabaseRouting, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("StorageAccountResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).StorageAccountResourceId = (string) content.GetValueForProperty("StorageAccountResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).StorageAccountResourceId, global::System.Convert.ToString); + } + if (content.Contains("EventGridResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).EventGridResourceId = (string) content.GetValueForProperty("EventGridResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).EventGridResourceId, global::System.Convert.ToString); + } + if (content.Contains("EventHubResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).EventHubResourceId = (string) content.GetValueForProperty("EventHubResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).EventHubResourceId, global::System.Convert.ToString); + } + if (content.Contains("ConsumerGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).ConsumerGroup = (string) content.GetValueForProperty("ConsumerGroup",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).ConsumerGroup, global::System.Convert.ToString); + } + if (content.Contains("TableName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).TableName = (string) content.GetValueForProperty("TableName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).TableName, global::System.Convert.ToString); + } + if (content.Contains("MappingRuleName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).MappingRuleName = (string) content.GetValueForProperty("MappingRuleName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).MappingRuleName, global::System.Convert.ToString); + } + if (content.Contains("DataFormat")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).DataFormat = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat?) content.GetValueForProperty("DataFormat",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).DataFormat, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat.CreateFrom); + } + if (content.Contains("IgnoreFirstRecord")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).IgnoreFirstRecord = (bool?) content.GetValueForProperty("IgnoreFirstRecord",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).IgnoreFirstRecord, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("BlobStorageEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).BlobStorageEventType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType?) content.GetValueForProperty("BlobStorageEventType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).BlobStorageEventType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType.CreateFrom); + } + if (content.Contains("ManagedIdentityResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).ManagedIdentityResourceId = (string) content.GetValueForProperty("ManagedIdentityResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).ManagedIdentityResourceId, global::System.Convert.ToString); + } + if (content.Contains("ManagedIdentityObjectId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).ManagedIdentityObjectId = (string) content.GetValueForProperty("ManagedIdentityObjectId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).ManagedIdentityObjectId, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventGridDataConnection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventGridConnectionPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind.CreateFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("DatabaseRouting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).DatabaseRouting = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting?) content.GetValueForProperty("DatabaseRouting",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).DatabaseRouting, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("StorageAccountResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).StorageAccountResourceId = (string) content.GetValueForProperty("StorageAccountResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).StorageAccountResourceId, global::System.Convert.ToString); + } + if (content.Contains("EventGridResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).EventGridResourceId = (string) content.GetValueForProperty("EventGridResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).EventGridResourceId, global::System.Convert.ToString); + } + if (content.Contains("EventHubResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).EventHubResourceId = (string) content.GetValueForProperty("EventHubResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).EventHubResourceId, global::System.Convert.ToString); + } + if (content.Contains("ConsumerGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).ConsumerGroup = (string) content.GetValueForProperty("ConsumerGroup",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).ConsumerGroup, global::System.Convert.ToString); + } + if (content.Contains("TableName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).TableName = (string) content.GetValueForProperty("TableName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).TableName, global::System.Convert.ToString); + } + if (content.Contains("MappingRuleName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).MappingRuleName = (string) content.GetValueForProperty("MappingRuleName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).MappingRuleName, global::System.Convert.ToString); + } + if (content.Contains("DataFormat")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).DataFormat = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat?) content.GetValueForProperty("DataFormat",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).DataFormat, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat.CreateFrom); + } + if (content.Contains("IgnoreFirstRecord")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).IgnoreFirstRecord = (bool?) content.GetValueForProperty("IgnoreFirstRecord",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).IgnoreFirstRecord, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("BlobStorageEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).BlobStorageEventType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType?) content.GetValueForProperty("BlobStorageEventType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).BlobStorageEventType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType.CreateFrom); + } + if (content.Contains("ManagedIdentityResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).ManagedIdentityResourceId = (string) content.GetValueForProperty("ManagedIdentityResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).ManagedIdentityResourceId, global::System.Convert.ToString); + } + if (content.Contains("ManagedIdentityObjectId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).ManagedIdentityObjectId = (string) content.GetValueForProperty("ManagedIdentityObjectId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal)this).ManagedIdentityObjectId, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing an Event Grid data connection. + [System.ComponentModel.TypeConverter(typeof(EventGridDataConnectionTypeConverter))] + public partial interface IEventGridDataConnection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridDataConnection.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridDataConnection.TypeConverter.cs new file mode 100644 index 000000000000..c7c4140a9130 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridDataConnection.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventGridDataConnectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventGridDataConnection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventGridDataConnection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventGridDataConnection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridDataConnection.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridDataConnection.cs new file mode 100644 index 000000000000..ab25e09b3773 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridDataConnection.cs @@ -0,0 +1,347 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing an Event Grid data connection. + public partial class EventGridDataConnection : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnection, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection __dataConnection = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection(); + + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string AzureAsyncOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).AzureAsyncOperation; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).AzureAsyncOperation = value ?? null; } + + /// The name of blob storage event type to process. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType? BlobStorageEventType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).BlobStorageEventType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).BlobStorageEventType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType)""); } + + /// The event hub consumer group. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string ConsumerGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).ConsumerGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).ConsumerGroup = value ?? null; } + + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat? DataFormat { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).DataFormat; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).DataFormat = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat)""); } + + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).DatabaseRouting; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).DatabaseRouting = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting)""); } + + /// + /// The resource ID of the event grid that is subscribed to the storage account events. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string EventGridResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).EventGridResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).EventGridResourceId = value ?? null; } + + /// The resource ID where the event grid is configured to send events. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string EventHubResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).EventHubResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).EventHubResourceId = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Id; } + + /// + /// A Boolean value that, if set to true, indicates that ingestion should ignore the first record of every file + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public bool? IgnoreFirstRecord { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).IgnoreFirstRecord; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).IgnoreFirstRecord = value ?? default(bool); } + + /// Kind of the endpoint for the data connection + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind Kind { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).Kind; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).Kind = value ; } + + /// Resource location. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).Location = value ?? null; } + + /// The object ID of managedIdentityResourceId + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string ManagedIdentityObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).ManagedIdentityObjectId; } + + /// + /// Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user + /// assigned identity (UAI) provide the UAI resource Id. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string ManagedIdentityResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).ManagedIdentityResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).ManagedIdentityResourceId = value ?? null; } + + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string MappingRuleName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).MappingRuleName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).MappingRuleName = value ?? null; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Type = value; } + + /// Internal Acessors for ManagedIdentityObjectId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal.ManagedIdentityObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).ManagedIdentityObjectId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).ManagedIdentityObjectId = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventGridConnectionProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnectionInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).ProvisioningState = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionProperties _property; + + /// The properties of the Event Grid data connection. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventGridConnectionProperties()); set => this._property = value; } + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).ProvisioningState; } + + /// The resource ID of the storage account where the data resides. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string StorageAccountResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).StorageAccountResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).StorageAccountResourceId = value ?? null; } + + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string TableName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).TableName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionPropertiesInternal)Property).TableName = value ?? null; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Type; } + + /// Creates an new instance. + public EventGridDataConnection() + { + + } + + /// + void Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable.ReadHeaders(global::System.Net.Http.Headers.HttpResponseHeaders headers) + { + if (headers.TryGetValues("Azure-AsyncOperation", out var __azureAsyncOperationHeader0)) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation = System.Linq.Enumerable.FirstOrDefault(__azureAsyncOperationHeader0) is string __headerAzureAsyncOperationHeader0 ? __headerAzureAsyncOperationHeader0 : (string)null; + } + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__dataConnection), __dataConnection); + await eventListener.AssertObjectIsValid(nameof(__dataConnection), __dataConnection); + } + } + /// Class representing an Event Grid data connection. + public partial interface IEventGridDataConnection : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection + { + /// The name of blob storage event type to process. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of blob storage event type to process.", + SerializedName = @"blobStorageEventType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType? BlobStorageEventType { get; set; } + /// The event hub consumer group. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event hub consumer group.", + SerializedName = @"consumerGroup", + PossibleTypes = new [] { typeof(string) })] + string ConsumerGroup { get; set; } + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The data format of the message. Optionally the data format can be added to each message.", + SerializedName = @"dataFormat", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat? DataFormat { get; set; } + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indication for database routing information from the data connection, by default only database routing information is allowed", + SerializedName = @"databaseRouting", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get; set; } + /// + /// The resource ID of the event grid that is subscribed to the storage account events. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource ID of the event grid that is subscribed to the storage account events.", + SerializedName = @"eventGridResourceId", + PossibleTypes = new [] { typeof(string) })] + string EventGridResourceId { get; set; } + /// The resource ID where the event grid is configured to send events. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource ID where the event grid is configured to send events.", + SerializedName = @"eventHubResourceId", + PossibleTypes = new [] { typeof(string) })] + string EventHubResourceId { get; set; } + /// + /// A Boolean value that, if set to true, indicates that ingestion should ignore the first record of every file + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A Boolean value that, if set to true, indicates that ingestion should ignore the first record of every file", + SerializedName = @"ignoreFirstRecord", + PossibleTypes = new [] { typeof(bool) })] + bool? IgnoreFirstRecord { get; set; } + /// The object ID of managedIdentityResourceId + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The object ID of managedIdentityResourceId", + SerializedName = @"managedIdentityObjectId", + PossibleTypes = new [] { typeof(string) })] + string ManagedIdentityObjectId { get; } + /// + /// Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user + /// assigned identity (UAI) provide the UAI resource Id. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user assigned identity (UAI) provide the UAI resource Id.", + SerializedName = @"managedIdentityResourceId", + PossibleTypes = new [] { typeof(string) })] + string ManagedIdentityResourceId { get; set; } + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.", + SerializedName = @"mappingRuleName", + PossibleTypes = new [] { typeof(string) })] + string MappingRuleName { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// The resource ID of the storage account where the data resides. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource ID of the storage account where the data resides.", + SerializedName = @"storageAccountResourceId", + PossibleTypes = new [] { typeof(string) })] + string StorageAccountResourceId { get; set; } + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The table where the data should be ingested. Optionally the table information can be added to each message.", + SerializedName = @"tableName", + PossibleTypes = new [] { typeof(string) })] + string TableName { get; set; } + + } + /// Class representing an Event Grid data connection. + internal partial interface IEventGridDataConnectionInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal + { + /// The name of blob storage event type to process. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType? BlobStorageEventType { get; set; } + /// The event hub consumer group. + string ConsumerGroup { get; set; } + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat? DataFormat { get; set; } + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get; set; } + /// + /// The resource ID of the event grid that is subscribed to the storage account events. + /// + string EventGridResourceId { get; set; } + /// The resource ID where the event grid is configured to send events. + string EventHubResourceId { get; set; } + /// + /// A Boolean value that, if set to true, indicates that ingestion should ignore the first record of every file + /// + bool? IgnoreFirstRecord { get; set; } + /// The object ID of managedIdentityResourceId + string ManagedIdentityObjectId { get; set; } + /// + /// Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user + /// assigned identity (UAI) provide the UAI resource Id. + /// + string ManagedIdentityResourceId { get; set; } + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + string MappingRuleName { get; set; } + /// The properties of the Event Grid data connection. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridConnectionProperties Property { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// The resource ID of the storage account where the data resides. + string StorageAccountResourceId { get; set; } + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + string TableName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridDataConnection.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridDataConnection.json.cs new file mode 100644 index 000000000000..7ba14ea4f18f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventGridDataConnection.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing an Event Grid data connection. + public partial class EventGridDataConnection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal EventGridDataConnection(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __dataConnection = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventGridConnectionProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventGridDataConnection FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new EventGridDataConnection(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __dataConnection?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubConnectionProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubConnectionProperties.PowerShell.cs new file mode 100644 index 000000000000..0b8b7c198f81 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubConnectionProperties.PowerShell.cs @@ -0,0 +1,222 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing the Kusto event hub connection properties. + [System.ComponentModel.TypeConverter(typeof(EventHubConnectionPropertiesTypeConverter))] + public partial class EventHubConnectionProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventHubConnectionProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventHubConnectionProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventHubConnectionProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EventHubResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).EventHubResourceId = (string) content.GetValueForProperty("EventHubResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).EventHubResourceId, global::System.Convert.ToString); + } + if (content.Contains("ConsumerGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).ConsumerGroup = (string) content.GetValueForProperty("ConsumerGroup",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).ConsumerGroup, global::System.Convert.ToString); + } + if (content.Contains("TableName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).TableName = (string) content.GetValueForProperty("TableName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).TableName, global::System.Convert.ToString); + } + if (content.Contains("MappingRuleName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).MappingRuleName = (string) content.GetValueForProperty("MappingRuleName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).MappingRuleName, global::System.Convert.ToString); + } + if (content.Contains("DataFormat")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).DataFormat = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat?) content.GetValueForProperty("DataFormat",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).DataFormat, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat.CreateFrom); + } + if (content.Contains("EventSystemProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).EventSystemProperty = (string[]) content.GetValueForProperty("EventSystemProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).EventSystemProperty, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Compression")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).Compression = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression?) content.GetValueForProperty("Compression",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).Compression, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("ManagedIdentityResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).ManagedIdentityResourceId = (string) content.GetValueForProperty("ManagedIdentityResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).ManagedIdentityResourceId, global::System.Convert.ToString); + } + if (content.Contains("ManagedIdentityObjectId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).ManagedIdentityObjectId = (string) content.GetValueForProperty("ManagedIdentityObjectId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).ManagedIdentityObjectId, global::System.Convert.ToString); + } + if (content.Contains("DatabaseRouting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).DatabaseRouting = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting?) content.GetValueForProperty("DatabaseRouting",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).DatabaseRouting, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventHubConnectionProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EventHubResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).EventHubResourceId = (string) content.GetValueForProperty("EventHubResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).EventHubResourceId, global::System.Convert.ToString); + } + if (content.Contains("ConsumerGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).ConsumerGroup = (string) content.GetValueForProperty("ConsumerGroup",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).ConsumerGroup, global::System.Convert.ToString); + } + if (content.Contains("TableName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).TableName = (string) content.GetValueForProperty("TableName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).TableName, global::System.Convert.ToString); + } + if (content.Contains("MappingRuleName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).MappingRuleName = (string) content.GetValueForProperty("MappingRuleName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).MappingRuleName, global::System.Convert.ToString); + } + if (content.Contains("DataFormat")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).DataFormat = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat?) content.GetValueForProperty("DataFormat",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).DataFormat, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat.CreateFrom); + } + if (content.Contains("EventSystemProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).EventSystemProperty = (string[]) content.GetValueForProperty("EventSystemProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).EventSystemProperty, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Compression")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).Compression = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression?) content.GetValueForProperty("Compression",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).Compression, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("ManagedIdentityResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).ManagedIdentityResourceId = (string) content.GetValueForProperty("ManagedIdentityResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).ManagedIdentityResourceId, global::System.Convert.ToString); + } + if (content.Contains("ManagedIdentityObjectId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).ManagedIdentityObjectId = (string) content.GetValueForProperty("ManagedIdentityObjectId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).ManagedIdentityObjectId, global::System.Convert.ToString); + } + if (content.Contains("DatabaseRouting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).DatabaseRouting = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting?) content.GetValueForProperty("DatabaseRouting",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)this).DatabaseRouting, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting.CreateFrom); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing the Kusto event hub connection properties. + [System.ComponentModel.TypeConverter(typeof(EventHubConnectionPropertiesTypeConverter))] + public partial interface IEventHubConnectionProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubConnectionProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubConnectionProperties.TypeConverter.cs new file mode 100644 index 000000000000..e442ba29f54e --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubConnectionProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventHubConnectionPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventHubConnectionProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventHubConnectionProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventHubConnectionProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubConnectionProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubConnectionProperties.cs new file mode 100644 index 000000000000..0546094f1356 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubConnectionProperties.cs @@ -0,0 +1,263 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing the Kusto event hub connection properties. + public partial class EventHubConnectionProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression? _compression; + + /// The event hub messages compression type + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression? Compression { get => this._compression; set => this._compression = value; } + + /// Backing field for property. + private string _consumerGroup; + + /// The event hub consumer group. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ConsumerGroup { get => this._consumerGroup; set => this._consumerGroup = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat? _dataFormat; + + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat? DataFormat { get => this._dataFormat; set => this._dataFormat = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? _databaseRouting; + + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get => this._databaseRouting; set => this._databaseRouting = value; } + + /// Backing field for property. + private string _eventHubResourceId; + + /// The resource ID of the event hub to be used to create a data connection. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string EventHubResourceId { get => this._eventHubResourceId; set => this._eventHubResourceId = value; } + + /// Backing field for property. + private string[] _eventSystemProperty; + + /// System properties of the event hub + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string[] EventSystemProperty { get => this._eventSystemProperty; set => this._eventSystemProperty = value; } + + /// Backing field for property. + private string _managedIdentityObjectId; + + /// The object ID of the managedIdentityResourceId + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ManagedIdentityObjectId { get => this._managedIdentityObjectId; } + + /// Backing field for property. + private string _managedIdentityResourceId; + + /// + /// Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user + /// assigned identity (UAI) provide the UAI resource Id. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ManagedIdentityResourceId { get => this._managedIdentityResourceId; set => this._managedIdentityResourceId = value; } + + /// Backing field for property. + private string _mappingRuleName; + + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string MappingRuleName { get => this._mappingRuleName; set => this._mappingRuleName = value; } + + /// Internal Acessors for ManagedIdentityObjectId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal.ManagedIdentityObjectId { get => this._managedIdentityObjectId; set { {_managedIdentityObjectId = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? _provisioningState; + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private string _tableName; + + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string TableName { get => this._tableName; set => this._tableName = value; } + + /// Creates an new instance. + public EventHubConnectionProperties() + { + + } + } + /// Class representing the Kusto event hub connection properties. + public partial interface IEventHubConnectionProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The event hub messages compression type + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event hub messages compression type", + SerializedName = @"compression", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression? Compression { get; set; } + /// The event hub consumer group. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The event hub consumer group.", + SerializedName = @"consumerGroup", + PossibleTypes = new [] { typeof(string) })] + string ConsumerGroup { get; set; } + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The data format of the message. Optionally the data format can be added to each message.", + SerializedName = @"dataFormat", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat? DataFormat { get; set; } + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indication for database routing information from the data connection, by default only database routing information is allowed", + SerializedName = @"databaseRouting", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get; set; } + /// The resource ID of the event hub to be used to create a data connection. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The resource ID of the event hub to be used to create a data connection.", + SerializedName = @"eventHubResourceId", + PossibleTypes = new [] { typeof(string) })] + string EventHubResourceId { get; set; } + /// System properties of the event hub + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"System properties of the event hub", + SerializedName = @"eventSystemProperties", + PossibleTypes = new [] { typeof(string) })] + string[] EventSystemProperty { get; set; } + /// The object ID of the managedIdentityResourceId + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The object ID of the managedIdentityResourceId", + SerializedName = @"managedIdentityObjectId", + PossibleTypes = new [] { typeof(string) })] + string ManagedIdentityObjectId { get; } + /// + /// Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user + /// assigned identity (UAI) provide the UAI resource Id. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user assigned identity (UAI) provide the UAI resource Id.", + SerializedName = @"managedIdentityResourceId", + PossibleTypes = new [] { typeof(string) })] + string ManagedIdentityResourceId { get; set; } + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.", + SerializedName = @"mappingRuleName", + PossibleTypes = new [] { typeof(string) })] + string MappingRuleName { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The table where the data should be ingested. Optionally the table information can be added to each message.", + SerializedName = @"tableName", + PossibleTypes = new [] { typeof(string) })] + string TableName { get; set; } + + } + /// Class representing the Kusto event hub connection properties. + internal partial interface IEventHubConnectionPropertiesInternal + + { + /// The event hub messages compression type + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression? Compression { get; set; } + /// The event hub consumer group. + string ConsumerGroup { get; set; } + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat? DataFormat { get; set; } + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get; set; } + /// The resource ID of the event hub to be used to create a data connection. + string EventHubResourceId { get; set; } + /// System properties of the event hub + string[] EventSystemProperty { get; set; } + /// The object ID of the managedIdentityResourceId + string ManagedIdentityObjectId { get; set; } + /// + /// Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user + /// assigned identity (UAI) provide the UAI resource Id. + /// + string ManagedIdentityResourceId { get; set; } + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + string MappingRuleName { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + string TableName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubConnectionProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubConnectionProperties.json.cs new file mode 100644 index 000000000000..ae3a9511c851 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubConnectionProperties.json.cs @@ -0,0 +1,140 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing the Kusto event hub connection properties. + public partial class EventHubConnectionProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal EventHubConnectionProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_eventHubResourceId = If( json?.PropertyT("eventHubResourceId"), out var __jsonEventHubResourceId) ? (string)__jsonEventHubResourceId : (string)EventHubResourceId;} + {_consumerGroup = If( json?.PropertyT("consumerGroup"), out var __jsonConsumerGroup) ? (string)__jsonConsumerGroup : (string)ConsumerGroup;} + {_tableName = If( json?.PropertyT("tableName"), out var __jsonTableName) ? (string)__jsonTableName : (string)TableName;} + {_mappingRuleName = If( json?.PropertyT("mappingRuleName"), out var __jsonMappingRuleName) ? (string)__jsonMappingRuleName : (string)MappingRuleName;} + {_dataFormat = If( json?.PropertyT("dataFormat"), out var __jsonDataFormat) ? (string)__jsonDataFormat : (string)DataFormat;} + {_eventSystemProperty = If( json?.PropertyT("eventSystemProperties"), out var __jsonEventSystemProperties) ? If( __jsonEventSystemProperties as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(string) (__u is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : EventSystemProperty;} + {_compression = If( json?.PropertyT("compression"), out var __jsonCompression) ? (string)__jsonCompression : (string)Compression;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_managedIdentityResourceId = If( json?.PropertyT("managedIdentityResourceId"), out var __jsonManagedIdentityResourceId) ? (string)__jsonManagedIdentityResourceId : (string)ManagedIdentityResourceId;} + {_managedIdentityObjectId = If( json?.PropertyT("managedIdentityObjectId"), out var __jsonManagedIdentityObjectId) ? (string)__jsonManagedIdentityObjectId : (string)ManagedIdentityObjectId;} + {_databaseRouting = If( json?.PropertyT("databaseRouting"), out var __jsonDatabaseRouting) ? (string)__jsonDatabaseRouting : (string)DatabaseRouting;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new EventHubConnectionProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._eventHubResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._eventHubResourceId.ToString()) : null, "eventHubResourceId" ,container.Add ); + AddIf( null != (((object)this._consumerGroup)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._consumerGroup.ToString()) : null, "consumerGroup" ,container.Add ); + AddIf( null != (((object)this._tableName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._tableName.ToString()) : null, "tableName" ,container.Add ); + AddIf( null != (((object)this._mappingRuleName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._mappingRuleName.ToString()) : null, "mappingRuleName" ,container.Add ); + AddIf( null != (((object)this._dataFormat)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._dataFormat.ToString()) : null, "dataFormat" ,container.Add ); + if (null != this._eventSystemProperty) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._eventSystemProperty ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("eventSystemProperties",__w); + } + AddIf( null != (((object)this._compression)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._compression.ToString()) : null, "compression" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != (((object)this._managedIdentityResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._managedIdentityResourceId.ToString()) : null, "managedIdentityResourceId" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._managedIdentityObjectId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._managedIdentityObjectId.ToString()) : null, "managedIdentityObjectId" ,container.Add ); + } + AddIf( null != (((object)this._databaseRouting)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._databaseRouting.ToString()) : null, "databaseRouting" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubDataConnection.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubDataConnection.PowerShell.cs new file mode 100644 index 000000000000..000a66819ffa --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubDataConnection.PowerShell.cs @@ -0,0 +1,278 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing an event hub data connection. + [System.ComponentModel.TypeConverter(typeof(EventHubDataConnectionTypeConverter))] + public partial class EventHubDataConnection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventHubDataConnection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventHubDataConnection(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventHubDataConnection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventHubConnectionPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind.CreateFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("Compression")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).Compression = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression?) content.GetValueForProperty("Compression",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).Compression, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("DatabaseRouting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).DatabaseRouting = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting?) content.GetValueForProperty("DatabaseRouting",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).DatabaseRouting, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting.CreateFrom); + } + if (content.Contains("EventHubResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).EventHubResourceId = (string) content.GetValueForProperty("EventHubResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).EventHubResourceId, global::System.Convert.ToString); + } + if (content.Contains("ConsumerGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).ConsumerGroup = (string) content.GetValueForProperty("ConsumerGroup",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).ConsumerGroup, global::System.Convert.ToString); + } + if (content.Contains("TableName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).TableName = (string) content.GetValueForProperty("TableName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).TableName, global::System.Convert.ToString); + } + if (content.Contains("MappingRuleName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).MappingRuleName = (string) content.GetValueForProperty("MappingRuleName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).MappingRuleName, global::System.Convert.ToString); + } + if (content.Contains("DataFormat")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).DataFormat = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat?) content.GetValueForProperty("DataFormat",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).DataFormat, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat.CreateFrom); + } + if (content.Contains("EventSystemProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).EventSystemProperty = (string[]) content.GetValueForProperty("EventSystemProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).EventSystemProperty, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ManagedIdentityResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).ManagedIdentityResourceId = (string) content.GetValueForProperty("ManagedIdentityResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).ManagedIdentityResourceId, global::System.Convert.ToString); + } + if (content.Contains("ManagedIdentityObjectId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).ManagedIdentityObjectId = (string) content.GetValueForProperty("ManagedIdentityObjectId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).ManagedIdentityObjectId, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventHubDataConnection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventHubConnectionPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind.CreateFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("Compression")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).Compression = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression?) content.GetValueForProperty("Compression",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).Compression, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("DatabaseRouting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).DatabaseRouting = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting?) content.GetValueForProperty("DatabaseRouting",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).DatabaseRouting, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting.CreateFrom); + } + if (content.Contains("EventHubResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).EventHubResourceId = (string) content.GetValueForProperty("EventHubResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).EventHubResourceId, global::System.Convert.ToString); + } + if (content.Contains("ConsumerGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).ConsumerGroup = (string) content.GetValueForProperty("ConsumerGroup",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).ConsumerGroup, global::System.Convert.ToString); + } + if (content.Contains("TableName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).TableName = (string) content.GetValueForProperty("TableName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).TableName, global::System.Convert.ToString); + } + if (content.Contains("MappingRuleName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).MappingRuleName = (string) content.GetValueForProperty("MappingRuleName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).MappingRuleName, global::System.Convert.ToString); + } + if (content.Contains("DataFormat")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).DataFormat = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat?) content.GetValueForProperty("DataFormat",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).DataFormat, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat.CreateFrom); + } + if (content.Contains("EventSystemProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).EventSystemProperty = (string[]) content.GetValueForProperty("EventSystemProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).EventSystemProperty, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ManagedIdentityResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).ManagedIdentityResourceId = (string) content.GetValueForProperty("ManagedIdentityResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).ManagedIdentityResourceId, global::System.Convert.ToString); + } + if (content.Contains("ManagedIdentityObjectId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).ManagedIdentityObjectId = (string) content.GetValueForProperty("ManagedIdentityObjectId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal)this).ManagedIdentityObjectId, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing an event hub data connection. + [System.ComponentModel.TypeConverter(typeof(EventHubDataConnectionTypeConverter))] + public partial interface IEventHubDataConnection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubDataConnection.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubDataConnection.TypeConverter.cs new file mode 100644 index 000000000000..427223fd5d33 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubDataConnection.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventHubDataConnectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventHubDataConnection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventHubDataConnection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventHubDataConnection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubDataConnection.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubDataConnection.cs new file mode 100644 index 000000000000..bd99637721af --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubDataConnection.cs @@ -0,0 +1,307 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing an event hub data connection. + public partial class EventHubDataConnection : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnection, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection __dataConnection = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection(); + + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string AzureAsyncOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).AzureAsyncOperation; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).AzureAsyncOperation = value ?? null; } + + /// The event hub messages compression type + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression? Compression { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).Compression; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).Compression = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression)""); } + + /// The event hub consumer group. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string ConsumerGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).ConsumerGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).ConsumerGroup = value ?? null; } + + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat? DataFormat { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).DataFormat; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).DataFormat = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat)""); } + + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).DatabaseRouting; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).DatabaseRouting = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting)""); } + + /// The resource ID of the event hub to be used to create a data connection. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string EventHubResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).EventHubResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).EventHubResourceId = value ?? null; } + + /// System properties of the event hub + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] EventSystemProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).EventSystemProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).EventSystemProperty = value ?? null /* arrayOf */; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Id; } + + /// Kind of the endpoint for the data connection + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind Kind { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).Kind; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).Kind = value ; } + + /// Resource location. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).Location = value ?? null; } + + /// The object ID of the managedIdentityResourceId + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string ManagedIdentityObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).ManagedIdentityObjectId; } + + /// + /// Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user + /// assigned identity (UAI) provide the UAI resource Id. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string ManagedIdentityResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).ManagedIdentityResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).ManagedIdentityResourceId = value ?? null; } + + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string MappingRuleName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).MappingRuleName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).MappingRuleName = value ?? null; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Type = value; } + + /// Internal Acessors for ManagedIdentityObjectId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal.ManagedIdentityObjectId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).ManagedIdentityObjectId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).ManagedIdentityObjectId = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventHubConnectionProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnectionInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).ProvisioningState = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionProperties _property; + + /// The Event Hub data connection properties to validate. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventHubConnectionProperties()); set => this._property = value; } + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).ProvisioningState; } + + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string TableName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).TableName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionPropertiesInternal)Property).TableName = value ?? null; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Type; } + + /// Creates an new instance. + public EventHubDataConnection() + { + + } + + /// + void Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable.ReadHeaders(global::System.Net.Http.Headers.HttpResponseHeaders headers) + { + if (headers.TryGetValues("Azure-AsyncOperation", out var __azureAsyncOperationHeader0)) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation = System.Linq.Enumerable.FirstOrDefault(__azureAsyncOperationHeader0) is string __headerAzureAsyncOperationHeader0 ? __headerAzureAsyncOperationHeader0 : (string)null; + } + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__dataConnection), __dataConnection); + await eventListener.AssertObjectIsValid(nameof(__dataConnection), __dataConnection); + } + } + /// Class representing an event hub data connection. + public partial interface IEventHubDataConnection : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection + { + /// The event hub messages compression type + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event hub messages compression type", + SerializedName = @"compression", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression? Compression { get; set; } + /// The event hub consumer group. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event hub consumer group.", + SerializedName = @"consumerGroup", + PossibleTypes = new [] { typeof(string) })] + string ConsumerGroup { get; set; } + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The data format of the message. Optionally the data format can be added to each message.", + SerializedName = @"dataFormat", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat? DataFormat { get; set; } + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indication for database routing information from the data connection, by default only database routing information is allowed", + SerializedName = @"databaseRouting", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get; set; } + /// The resource ID of the event hub to be used to create a data connection. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource ID of the event hub to be used to create a data connection.", + SerializedName = @"eventHubResourceId", + PossibleTypes = new [] { typeof(string) })] + string EventHubResourceId { get; set; } + /// System properties of the event hub + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"System properties of the event hub", + SerializedName = @"eventSystemProperties", + PossibleTypes = new [] { typeof(string) })] + string[] EventSystemProperty { get; set; } + /// The object ID of the managedIdentityResourceId + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The object ID of the managedIdentityResourceId", + SerializedName = @"managedIdentityObjectId", + PossibleTypes = new [] { typeof(string) })] + string ManagedIdentityObjectId { get; } + /// + /// Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user + /// assigned identity (UAI) provide the UAI resource Id. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user assigned identity (UAI) provide the UAI resource Id.", + SerializedName = @"managedIdentityResourceId", + PossibleTypes = new [] { typeof(string) })] + string ManagedIdentityResourceId { get; set; } + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.", + SerializedName = @"mappingRuleName", + PossibleTypes = new [] { typeof(string) })] + string MappingRuleName { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The table where the data should be ingested. Optionally the table information can be added to each message.", + SerializedName = @"tableName", + PossibleTypes = new [] { typeof(string) })] + string TableName { get; set; } + + } + /// Class representing an event hub data connection. + internal partial interface IEventHubDataConnectionInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal + { + /// The event hub messages compression type + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression? Compression { get; set; } + /// The event hub consumer group. + string ConsumerGroup { get; set; } + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat? DataFormat { get; set; } + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get; set; } + /// The resource ID of the event hub to be used to create a data connection. + string EventHubResourceId { get; set; } + /// System properties of the event hub + string[] EventSystemProperty { get; set; } + /// The object ID of the managedIdentityResourceId + string ManagedIdentityObjectId { get; set; } + /// + /// Empty for non-managed identity based data connection. For system assigned identity, provide cluster resource Id. For user + /// assigned identity (UAI) provide the UAI resource Id. + /// + string ManagedIdentityResourceId { get; set; } + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + string MappingRuleName { get; set; } + /// The Event Hub data connection properties to validate. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubConnectionProperties Property { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + string TableName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubDataConnection.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubDataConnection.json.cs new file mode 100644 index 000000000000..559f34de16df --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/EventHubDataConnection.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing an event hub data connection. + public partial class EventHubDataConnection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal EventHubDataConnection(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __dataConnection = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EventHubConnectionProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEventHubDataConnection FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new EventHubDataConnection(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __dataConnection?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseDefinition.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseDefinition.PowerShell.cs new file mode 100644 index 000000000000..d4e07bde32f5 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseDefinition.PowerShell.cs @@ -0,0 +1,158 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A class representing follower database request. + [System.ComponentModel.TypeConverter(typeof(FollowerDatabaseDefinitionTypeConverter))] + public partial class FollowerDatabaseDefinition + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new FollowerDatabaseDefinition(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new FollowerDatabaseDefinition(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal FollowerDatabaseDefinition(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClusterResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinitionInternal)this).ClusterResourceId = (string) content.GetValueForProperty("ClusterResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinitionInternal)this).ClusterResourceId, global::System.Convert.ToString); + } + if (content.Contains("AttachedDatabaseConfigurationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinitionInternal)this).AttachedDatabaseConfigurationName = (string) content.GetValueForProperty("AttachedDatabaseConfigurationName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinitionInternal)this).AttachedDatabaseConfigurationName, global::System.Convert.ToString); + } + if (content.Contains("DatabaseName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinitionInternal)this).DatabaseName = (string) content.GetValueForProperty("DatabaseName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinitionInternal)this).DatabaseName, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal FollowerDatabaseDefinition(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClusterResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinitionInternal)this).ClusterResourceId = (string) content.GetValueForProperty("ClusterResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinitionInternal)this).ClusterResourceId, global::System.Convert.ToString); + } + if (content.Contains("AttachedDatabaseConfigurationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinitionInternal)this).AttachedDatabaseConfigurationName = (string) content.GetValueForProperty("AttachedDatabaseConfigurationName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinitionInternal)this).AttachedDatabaseConfigurationName, global::System.Convert.ToString); + } + if (content.Contains("DatabaseName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinitionInternal)this).DatabaseName = (string) content.GetValueForProperty("DatabaseName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinitionInternal)this).DatabaseName, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A class representing follower database request. + [System.ComponentModel.TypeConverter(typeof(FollowerDatabaseDefinitionTypeConverter))] + public partial interface IFollowerDatabaseDefinition + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseDefinition.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseDefinition.TypeConverter.cs new file mode 100644 index 000000000000..518da0a8605c --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseDefinition.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class FollowerDatabaseDefinitionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return FollowerDatabaseDefinition.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return FollowerDatabaseDefinition.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return FollowerDatabaseDefinition.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseDefinition.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseDefinition.cs new file mode 100644 index 000000000000..51d1152386b4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseDefinition.cs @@ -0,0 +1,94 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class representing follower database request. + public partial class FollowerDatabaseDefinition : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinitionInternal + { + + /// Backing field for property. + private string _attachedDatabaseConfigurationName; + + /// Resource name of the attached database configuration in the follower cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string AttachedDatabaseConfigurationName { get => this._attachedDatabaseConfigurationName; set => this._attachedDatabaseConfigurationName = value; } + + /// Backing field for property. + private string _clusterResourceId; + + /// Resource id of the cluster that follows a database owned by this cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ClusterResourceId { get => this._clusterResourceId; set => this._clusterResourceId = value; } + + /// Backing field for property. + private string _databaseName; + + /// + /// The database name owned by this cluster that was followed. * in case following all databases. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string DatabaseName { get => this._databaseName; } + + /// Internal Acessors for DatabaseName + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinitionInternal.DatabaseName { get => this._databaseName; set { {_databaseName = value;} } } + + /// Creates an new instance. + public FollowerDatabaseDefinition() + { + + } + } + /// A class representing follower database request. + public partial interface IFollowerDatabaseDefinition : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Resource name of the attached database configuration in the follower cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Resource name of the attached database configuration in the follower cluster.", + SerializedName = @"attachedDatabaseConfigurationName", + PossibleTypes = new [] { typeof(string) })] + string AttachedDatabaseConfigurationName { get; set; } + /// Resource id of the cluster that follows a database owned by this cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Resource id of the cluster that follows a database owned by this cluster.", + SerializedName = @"clusterResourceId", + PossibleTypes = new [] { typeof(string) })] + string ClusterResourceId { get; set; } + /// + /// The database name owned by this cluster that was followed. * in case following all databases. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The database name owned by this cluster that was followed. * in case following all databases.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + string DatabaseName { get; } + + } + /// A class representing follower database request. + internal partial interface IFollowerDatabaseDefinitionInternal + + { + /// Resource name of the attached database configuration in the follower cluster. + string AttachedDatabaseConfigurationName { get; set; } + /// Resource id of the cluster that follows a database owned by this cluster. + string ClusterResourceId { get; set; } + /// + /// The database name owned by this cluster that was followed. * in case following all databases. + /// + string DatabaseName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseDefinition.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseDefinition.json.cs new file mode 100644 index 000000000000..ba84d485cd00 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseDefinition.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class representing follower database request. + public partial class FollowerDatabaseDefinition + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal FollowerDatabaseDefinition(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_clusterResourceId = If( json?.PropertyT("clusterResourceId"), out var __jsonClusterResourceId) ? (string)__jsonClusterResourceId : (string)ClusterResourceId;} + {_attachedDatabaseConfigurationName = If( json?.PropertyT("attachedDatabaseConfigurationName"), out var __jsonAttachedDatabaseConfigurationName) ? (string)__jsonAttachedDatabaseConfigurationName : (string)AttachedDatabaseConfigurationName;} + {_databaseName = If( json?.PropertyT("databaseName"), out var __jsonDatabaseName) ? (string)__jsonDatabaseName : (string)DatabaseName;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new FollowerDatabaseDefinition(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._clusterResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._clusterResourceId.ToString()) : null, "clusterResourceId" ,container.Add ); + AddIf( null != (((object)this._attachedDatabaseConfigurationName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._attachedDatabaseConfigurationName.ToString()) : null, "attachedDatabaseConfigurationName" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._databaseName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._databaseName.ToString()) : null, "databaseName" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseListResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseListResult.PowerShell.cs new file mode 100644 index 000000000000..de21490a3211 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseListResult.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The list Kusto database principals operation response. + [System.ComponentModel.TypeConverter(typeof(FollowerDatabaseListResultTypeConverter))] + public partial class FollowerDatabaseListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new FollowerDatabaseListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new FollowerDatabaseListResult(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal FollowerDatabaseListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.FollowerDatabaseDefinitionTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal FollowerDatabaseListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.FollowerDatabaseDefinitionTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The list Kusto database principals operation response. + [System.ComponentModel.TypeConverter(typeof(FollowerDatabaseListResultTypeConverter))] + public partial interface IFollowerDatabaseListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseListResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseListResult.TypeConverter.cs new file mode 100644 index 000000000000..a81e98be668d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class FollowerDatabaseListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return FollowerDatabaseListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return FollowerDatabaseListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return FollowerDatabaseListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseListResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseListResult.cs new file mode 100644 index 000000000000..7a5cbb9af99e --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseListResult.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto database principals operation response. + public partial class FollowerDatabaseListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseListResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseListResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition[] _value; + + /// The list of follower database result. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public FollowerDatabaseListResult() + { + + } + } + /// The list Kusto database principals operation response. + public partial interface IFollowerDatabaseListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The list of follower database result. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of follower database result.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition[] Value { get; set; } + + } + /// The list Kusto database principals operation response. + internal partial interface IFollowerDatabaseListResultInternal + + { + /// The list of follower database result. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseListResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseListResult.json.cs new file mode 100644 index 000000000000..1886f307ac71 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/FollowerDatabaseListResult.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto database principals operation response. + public partial class FollowerDatabaseListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal FollowerDatabaseListResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.FollowerDatabaseDefinition.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new FollowerDatabaseListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Identity.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Identity.PowerShell.cs new file mode 100644 index 000000000000..071b5157bcc4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Identity.PowerShell.cs @@ -0,0 +1,166 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Identity for the resource. + [System.ComponentModel.TypeConverter(typeof(IdentityTypeConverter))] + public partial class Identity + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Identity(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Identity(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Identity(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType.CreateFrom); + } + if (content.Contains("UserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)this).UserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities) content.GetValueForProperty("UserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)this).UserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IdentityUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Identity(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType.CreateFrom); + } + if (content.Contains("UserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)this).UserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities) content.GetValueForProperty("UserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal)this).UserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IdentityUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Identity for the resource. + [System.ComponentModel.TypeConverter(typeof(IdentityTypeConverter))] + public partial interface IIdentity + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Identity.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Identity.TypeConverter.cs new file mode 100644 index 000000000000..01fa811e828b --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Identity.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class IdentityTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Identity.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Identity.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Identity.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Identity.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Identity.cs new file mode 100644 index 000000000000..ed173af1a6ea --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Identity.cs @@ -0,0 +1,126 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Identity for the resource. + public partial class Identity : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal + { + + /// Internal Acessors for PrincipalId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal.PrincipalId { get => this._principalId; set { {_principalId = value;} } } + + /// Internal Acessors for TenantId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityInternal.TenantId { get => this._tenantId; set { {_tenantId = value;} } } + + /// Backing field for property. + private string _principalId; + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string PrincipalId { get => this._principalId; } + + /// Backing field for property. + private string _tenantId; + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string TenantId { get => this._tenantId; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType _type; + + /// + /// 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 all identities. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType Type { get => this._type; set => this._type = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities _userAssignedIdentity; + + /// + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities UserAssignedIdentity { get => (this._userAssignedIdentity = this._userAssignedIdentity ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IdentityUserAssignedIdentities()); set => this._userAssignedIdentity = value; } + + /// Creates an new instance. + public Identity() + { + + } + } + /// Identity for the resource. + public partial interface IIdentity : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string PrincipalId { get; } + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string TenantId { get; } + /// + /// 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 all identities. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + 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 all identities.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType Type { get; set; } + /// + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities UserAssignedIdentity { get; set; } + + } + /// Identity for the resource. + internal partial interface IIdentityInternal + + { + /// The principal ID of resource identity. + string PrincipalId { get; set; } + /// The tenant ID of resource. + string TenantId { get; set; } + /// + /// 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 all identities. + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType Type { get; set; } + /// + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities UserAssignedIdentity { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Identity.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Identity.json.cs new file mode 100644 index 000000000000..c32e90200029 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Identity.json.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Identity for the resource. + public partial class Identity + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentity FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new Identity(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal Identity(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_principalId = If( json?.PropertyT("principalId"), out var __jsonPrincipalId) ? (string)__jsonPrincipalId : (string)PrincipalId;} + {_tenantId = If( json?.PropertyT("tenantId"), out var __jsonTenantId) ? (string)__jsonTenantId : (string)TenantId;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + {_userAssignedIdentity = If( json?.PropertyT("userAssignedIdentities"), out var __jsonUserAssignedIdentities) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IdentityUserAssignedIdentities.FromJson(__jsonUserAssignedIdentities) : UserAssignedIdentity;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._principalId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._principalId.ToString()) : null, "principalId" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._tenantId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._tenantId.ToString()) : null, "tenantId" ,container.Add ); + } + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AddIf( null != this._userAssignedIdentity ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._userAssignedIdentity.ToJson(null,serializationMode) : null, "userAssignedIdentities" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.PowerShell.cs new file mode 100644 index 000000000000..b336c91bb695 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + [System.ComponentModel.TypeConverter(typeof(IdentityUserAssignedIdentitiesTypeConverter))] + public partial class IdentityUserAssignedIdentities + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new IdentityUserAssignedIdentities(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new IdentityUserAssignedIdentities(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal IdentityUserAssignedIdentities(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + // this type is a dictionary; copy elements from source to here. + CopyFrom(content); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal IdentityUserAssignedIdentities(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + // this type is a dictionary; copy elements from source to here. + CopyFrom(content); + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + [System.ComponentModel.TypeConverter(typeof(IdentityUserAssignedIdentitiesTypeConverter))] + public partial interface IIdentityUserAssignedIdentities + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.TypeConverter.cs new file mode 100644 index 000000000000..0ab9b0892ca5 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class IdentityUserAssignedIdentitiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return IdentityUserAssignedIdentities.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return IdentityUserAssignedIdentities.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return IdentityUserAssignedIdentities.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.cs new file mode 100644 index 000000000000..28c6581387c7 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.cs @@ -0,0 +1,40 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + public partial class IdentityUserAssignedIdentities : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentitiesInternal + { + + /// Creates an new instance. + public IdentityUserAssignedIdentities() + { + + } + } + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + public partial interface IIdentityUserAssignedIdentities : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray + { + + } + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + internal partial interface IIdentityUserAssignedIdentitiesInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.dictionary.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.dictionary.cs new file mode 100644 index 000000000000..9bffa578db29 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + public partial class IdentityUserAssignedIdentities : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray.Values { get => __additionalProperties.Values; } + + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties this[global::System.String index] { get => __additionalProperties[index]; set => __additionalProperties[index] = value; } + + /// + /// + public void Add(global::System.String key, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties value) => __additionalProperties.Add( key, value); + + public void Clear() => __additionalProperties.Clear(); + + /// + public bool ContainsKey(global::System.String key) => __additionalProperties.ContainsKey( key); + + /// + public void CopyFrom(global::System.Collections.IDictionary source) + { + if (null != source) + { + foreach( var property in Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.TypeConverterExtensions.GetFilteredProperties(source, new global::System.Collections.Generic.HashSet() { } ) ) + { + if ((null != property.Key && null != property.Value)) + { + this.__additionalProperties.Add(property.Key.ToString(), global::System.Management.Automation.LanguagePrimitives.ConvertTo( property.Value)); + } + } + } + } + + /// + public void CopyFrom(global::System.Management.Automation.PSObject source) + { + if (null != source) + { + foreach( var property in Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.TypeConverterExtensions.GetFilteredProperties(source, new global::System.Collections.Generic.HashSet() { } ) ) + { + if ((null != property.Key && null != property.Value)) + { + this.__additionalProperties.Add(property.Key.ToString(), global::System.Management.Automation.LanguagePrimitives.ConvertTo( property.Value)); + } + } + } + } + + /// + public bool Remove(global::System.String key) => __additionalProperties.Remove( key); + + /// + /// + public bool TryGetValue(global::System.String key, out Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties value) => __additionalProperties.TryGetValue( key, out value); + + /// + + public static implicit operator global::System.Collections.Generic.Dictionary(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IdentityUserAssignedIdentities source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.json.cs new file mode 100644 index 000000000000..59a4e37378a4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IdentityUserAssignedIdentities.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + public partial class IdentityUserAssignedIdentities + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new IdentityUserAssignedIdentities(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + /// + internal IdentityUserAssignedIdentities(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, global::System.Collections.Generic.HashSet exclusions = null) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray)this).AdditionalProperties, (j) => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ComponentsSgqdofSchemasIdentityPropertiesUserassignedidentitiesAdditionalproperties.FromJson(j) ,exclusions ); + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubConnectionProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubConnectionProperties.PowerShell.cs new file mode 100644 index 000000000000..b7878589a8c0 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubConnectionProperties.PowerShell.cs @@ -0,0 +1,206 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing the Kusto Iot hub connection properties. + [System.ComponentModel.TypeConverter(typeof(IotHubConnectionPropertiesTypeConverter))] + public partial class IotHubConnectionProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new IotHubConnectionProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new IotHubConnectionProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal IotHubConnectionProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("IotHubResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).IotHubResourceId = (string) content.GetValueForProperty("IotHubResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).IotHubResourceId, global::System.Convert.ToString); + } + if (content.Contains("ConsumerGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).ConsumerGroup = (string) content.GetValueForProperty("ConsumerGroup",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).ConsumerGroup, global::System.Convert.ToString); + } + if (content.Contains("TableName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).TableName = (string) content.GetValueForProperty("TableName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).TableName, global::System.Convert.ToString); + } + if (content.Contains("MappingRuleName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).MappingRuleName = (string) content.GetValueForProperty("MappingRuleName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).MappingRuleName, global::System.Convert.ToString); + } + if (content.Contains("DataFormat")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).DataFormat = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat?) content.GetValueForProperty("DataFormat",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).DataFormat, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat.CreateFrom); + } + if (content.Contains("EventSystemProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).EventSystemProperty = (string[]) content.GetValueForProperty("EventSystemProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).EventSystemProperty, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SharedAccessPolicyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).SharedAccessPolicyName = (string) content.GetValueForProperty("SharedAccessPolicyName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).SharedAccessPolicyName, global::System.Convert.ToString); + } + if (content.Contains("DatabaseRouting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).DatabaseRouting = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting?) content.GetValueForProperty("DatabaseRouting",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).DatabaseRouting, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal IotHubConnectionProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("IotHubResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).IotHubResourceId = (string) content.GetValueForProperty("IotHubResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).IotHubResourceId, global::System.Convert.ToString); + } + if (content.Contains("ConsumerGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).ConsumerGroup = (string) content.GetValueForProperty("ConsumerGroup",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).ConsumerGroup, global::System.Convert.ToString); + } + if (content.Contains("TableName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).TableName = (string) content.GetValueForProperty("TableName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).TableName, global::System.Convert.ToString); + } + if (content.Contains("MappingRuleName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).MappingRuleName = (string) content.GetValueForProperty("MappingRuleName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).MappingRuleName, global::System.Convert.ToString); + } + if (content.Contains("DataFormat")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).DataFormat = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat?) content.GetValueForProperty("DataFormat",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).DataFormat, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat.CreateFrom); + } + if (content.Contains("EventSystemProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).EventSystemProperty = (string[]) content.GetValueForProperty("EventSystemProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).EventSystemProperty, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SharedAccessPolicyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).SharedAccessPolicyName = (string) content.GetValueForProperty("SharedAccessPolicyName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).SharedAccessPolicyName, global::System.Convert.ToString); + } + if (content.Contains("DatabaseRouting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).DatabaseRouting = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting?) content.GetValueForProperty("DatabaseRouting",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).DatabaseRouting, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing the Kusto Iot hub connection properties. + [System.ComponentModel.TypeConverter(typeof(IotHubConnectionPropertiesTypeConverter))] + public partial interface IIotHubConnectionProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubConnectionProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubConnectionProperties.TypeConverter.cs new file mode 100644 index 000000000000..e868e4e8b5e0 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubConnectionProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class IotHubConnectionPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return IotHubConnectionProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return IotHubConnectionProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return IotHubConnectionProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubConnectionProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubConnectionProperties.cs new file mode 100644 index 000000000000..00135405068f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubConnectionProperties.cs @@ -0,0 +1,217 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing the Kusto Iot hub connection properties. + public partial class IotHubConnectionProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal + { + + /// Backing field for property. + private string _consumerGroup; + + /// The iot hub consumer group. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ConsumerGroup { get => this._consumerGroup; set => this._consumerGroup = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat? _dataFormat; + + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat? DataFormat { get => this._dataFormat; set => this._dataFormat = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? _databaseRouting; + + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get => this._databaseRouting; set => this._databaseRouting = value; } + + /// Backing field for property. + private string[] _eventSystemProperty; + + /// System properties of the iot hub + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string[] EventSystemProperty { get => this._eventSystemProperty; set => this._eventSystemProperty = value; } + + /// Backing field for property. + private string _iotHubResourceId; + + /// The resource ID of the Iot hub to be used to create a data connection. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string IotHubResourceId { get => this._iotHubResourceId; set => this._iotHubResourceId = value; } + + /// Backing field for property. + private string _mappingRuleName; + + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string MappingRuleName { get => this._mappingRuleName; set => this._mappingRuleName = value; } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? _provisioningState; + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private string _sharedAccessPolicyName; + + /// The name of the share access policy + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string SharedAccessPolicyName { get => this._sharedAccessPolicyName; set => this._sharedAccessPolicyName = value; } + + /// Backing field for property. + private string _tableName; + + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string TableName { get => this._tableName; set => this._tableName = value; } + + /// Creates an new instance. + public IotHubConnectionProperties() + { + + } + } + /// Class representing the Kusto Iot hub connection properties. + public partial interface IIotHubConnectionProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The iot hub consumer group. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The iot hub consumer group.", + SerializedName = @"consumerGroup", + PossibleTypes = new [] { typeof(string) })] + string ConsumerGroup { get; set; } + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The data format of the message. Optionally the data format can be added to each message.", + SerializedName = @"dataFormat", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat? DataFormat { get; set; } + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indication for database routing information from the data connection, by default only database routing information is allowed", + SerializedName = @"databaseRouting", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get; set; } + /// System properties of the iot hub + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"System properties of the iot hub", + SerializedName = @"eventSystemProperties", + PossibleTypes = new [] { typeof(string) })] + string[] EventSystemProperty { get; set; } + /// The resource ID of the Iot hub to be used to create a data connection. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The resource ID of the Iot hub to be used to create a data connection.", + SerializedName = @"iotHubResourceId", + PossibleTypes = new [] { typeof(string) })] + string IotHubResourceId { get; set; } + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.", + SerializedName = @"mappingRuleName", + PossibleTypes = new [] { typeof(string) })] + string MappingRuleName { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// The name of the share access policy + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the share access policy", + SerializedName = @"sharedAccessPolicyName", + PossibleTypes = new [] { typeof(string) })] + string SharedAccessPolicyName { get; set; } + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The table where the data should be ingested. Optionally the table information can be added to each message.", + SerializedName = @"tableName", + PossibleTypes = new [] { typeof(string) })] + string TableName { get; set; } + + } + /// Class representing the Kusto Iot hub connection properties. + internal partial interface IIotHubConnectionPropertiesInternal + + { + /// The iot hub consumer group. + string ConsumerGroup { get; set; } + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat? DataFormat { get; set; } + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get; set; } + /// System properties of the iot hub + string[] EventSystemProperty { get; set; } + /// The resource ID of the Iot hub to be used to create a data connection. + string IotHubResourceId { get; set; } + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + string MappingRuleName { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// The name of the share access policy + string SharedAccessPolicyName { get; set; } + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + string TableName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubConnectionProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubConnectionProperties.json.cs new file mode 100644 index 000000000000..ae67e09ab4f5 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubConnectionProperties.json.cs @@ -0,0 +1,133 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing the Kusto Iot hub connection properties. + public partial class IotHubConnectionProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new IotHubConnectionProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal IotHubConnectionProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_iotHubResourceId = If( json?.PropertyT("iotHubResourceId"), out var __jsonIotHubResourceId) ? (string)__jsonIotHubResourceId : (string)IotHubResourceId;} + {_consumerGroup = If( json?.PropertyT("consumerGroup"), out var __jsonConsumerGroup) ? (string)__jsonConsumerGroup : (string)ConsumerGroup;} + {_tableName = If( json?.PropertyT("tableName"), out var __jsonTableName) ? (string)__jsonTableName : (string)TableName;} + {_mappingRuleName = If( json?.PropertyT("mappingRuleName"), out var __jsonMappingRuleName) ? (string)__jsonMappingRuleName : (string)MappingRuleName;} + {_dataFormat = If( json?.PropertyT("dataFormat"), out var __jsonDataFormat) ? (string)__jsonDataFormat : (string)DataFormat;} + {_eventSystemProperty = If( json?.PropertyT("eventSystemProperties"), out var __jsonEventSystemProperties) ? If( __jsonEventSystemProperties as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(string) (__u is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : EventSystemProperty;} + {_sharedAccessPolicyName = If( json?.PropertyT("sharedAccessPolicyName"), out var __jsonSharedAccessPolicyName) ? (string)__jsonSharedAccessPolicyName : (string)SharedAccessPolicyName;} + {_databaseRouting = If( json?.PropertyT("databaseRouting"), out var __jsonDatabaseRouting) ? (string)__jsonDatabaseRouting : (string)DatabaseRouting;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._iotHubResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._iotHubResourceId.ToString()) : null, "iotHubResourceId" ,container.Add ); + AddIf( null != (((object)this._consumerGroup)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._consumerGroup.ToString()) : null, "consumerGroup" ,container.Add ); + AddIf( null != (((object)this._tableName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._tableName.ToString()) : null, "tableName" ,container.Add ); + AddIf( null != (((object)this._mappingRuleName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._mappingRuleName.ToString()) : null, "mappingRuleName" ,container.Add ); + AddIf( null != (((object)this._dataFormat)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._dataFormat.ToString()) : null, "dataFormat" ,container.Add ); + if (null != this._eventSystemProperty) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._eventSystemProperty ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("eventSystemProperties",__w); + } + AddIf( null != (((object)this._sharedAccessPolicyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._sharedAccessPolicyName.ToString()) : null, "sharedAccessPolicyName" ,container.Add ); + AddIf( null != (((object)this._databaseRouting)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._databaseRouting.ToString()) : null, "databaseRouting" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubDataConnection.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubDataConnection.PowerShell.cs new file mode 100644 index 000000000000..014c5d186fc8 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubDataConnection.PowerShell.cs @@ -0,0 +1,262 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing an iot hub data connection. + [System.ComponentModel.TypeConverter(typeof(IotHubDataConnectionTypeConverter))] + public partial class IotHubDataConnection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new IotHubDataConnection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new IotHubDataConnection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal IotHubDataConnection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IotHubConnectionPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind.CreateFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("DatabaseRouting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).DatabaseRouting = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting?) content.GetValueForProperty("DatabaseRouting",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).DatabaseRouting, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("IotHubResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).IotHubResourceId = (string) content.GetValueForProperty("IotHubResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).IotHubResourceId, global::System.Convert.ToString); + } + if (content.Contains("ConsumerGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).ConsumerGroup = (string) content.GetValueForProperty("ConsumerGroup",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).ConsumerGroup, global::System.Convert.ToString); + } + if (content.Contains("TableName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).TableName = (string) content.GetValueForProperty("TableName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).TableName, global::System.Convert.ToString); + } + if (content.Contains("MappingRuleName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).MappingRuleName = (string) content.GetValueForProperty("MappingRuleName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).MappingRuleName, global::System.Convert.ToString); + } + if (content.Contains("DataFormat")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).DataFormat = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat?) content.GetValueForProperty("DataFormat",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).DataFormat, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat.CreateFrom); + } + if (content.Contains("EventSystemProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).EventSystemProperty = (string[]) content.GetValueForProperty("EventSystemProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).EventSystemProperty, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SharedAccessPolicyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).SharedAccessPolicyName = (string) content.GetValueForProperty("SharedAccessPolicyName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).SharedAccessPolicyName, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal IotHubDataConnection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IotHubConnectionPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind.CreateFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("DatabaseRouting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).DatabaseRouting = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting?) content.GetValueForProperty("DatabaseRouting",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).DatabaseRouting, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("IotHubResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).IotHubResourceId = (string) content.GetValueForProperty("IotHubResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).IotHubResourceId, global::System.Convert.ToString); + } + if (content.Contains("ConsumerGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).ConsumerGroup = (string) content.GetValueForProperty("ConsumerGroup",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).ConsumerGroup, global::System.Convert.ToString); + } + if (content.Contains("TableName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).TableName = (string) content.GetValueForProperty("TableName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).TableName, global::System.Convert.ToString); + } + if (content.Contains("MappingRuleName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).MappingRuleName = (string) content.GetValueForProperty("MappingRuleName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).MappingRuleName, global::System.Convert.ToString); + } + if (content.Contains("DataFormat")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).DataFormat = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat?) content.GetValueForProperty("DataFormat",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).DataFormat, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat.CreateFrom); + } + if (content.Contains("EventSystemProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).EventSystemProperty = (string[]) content.GetValueForProperty("EventSystemProperty",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).EventSystemProperty, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SharedAccessPolicyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).SharedAccessPolicyName = (string) content.GetValueForProperty("SharedAccessPolicyName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal)this).SharedAccessPolicyName, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing an iot hub data connection. + [System.ComponentModel.TypeConverter(typeof(IotHubDataConnectionTypeConverter))] + public partial interface IIotHubDataConnection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubDataConnection.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubDataConnection.TypeConverter.cs new file mode 100644 index 000000000000..dae06664d7e4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubDataConnection.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class IotHubDataConnectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return IotHubDataConnection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return IotHubDataConnection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return IotHubDataConnection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubDataConnection.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubDataConnection.cs new file mode 100644 index 000000000000..99652eb1cdf0 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubDataConnection.cs @@ -0,0 +1,267 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing an iot hub data connection. + public partial class IotHubDataConnection : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnection, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection __dataConnection = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection(); + + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string AzureAsyncOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).AzureAsyncOperation; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).AzureAsyncOperation = value ?? null; } + + /// The iot hub consumer group. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string ConsumerGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).ConsumerGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).ConsumerGroup = value ?? null; } + + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat? DataFormat { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).DataFormat; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).DataFormat = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat)""); } + + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).DatabaseRouting; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).DatabaseRouting = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting)""); } + + /// System properties of the iot hub + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] EventSystemProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).EventSystemProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).EventSystemProperty = value ?? null /* arrayOf */; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Id; } + + /// The resource ID of the Iot hub to be used to create a data connection. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string IotHubResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).IotHubResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).IotHubResourceId = value ?? null; } + + /// Kind of the endpoint for the data connection + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind Kind { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).Kind; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).Kind = value ; } + + /// Resource location. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)__dataConnection).Location = value ?? null; } + + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string MappingRuleName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).MappingRuleName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).MappingRuleName = value ?? null; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Type = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IotHubConnectionProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnectionInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).ProvisioningState = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionProperties _property; + + /// The Iot Hub data connection properties. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IotHubConnectionProperties()); set => this._property = value; } + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).ProvisioningState; } + + /// The name of the share access policy + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string SharedAccessPolicyName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).SharedAccessPolicyName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).SharedAccessPolicyName = value ?? null; } + + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string TableName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).TableName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionPropertiesInternal)Property).TableName = value ?? null; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__dataConnection).Type; } + + /// Creates an new instance. + public IotHubDataConnection() + { + + } + + /// + void Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable.ReadHeaders(global::System.Net.Http.Headers.HttpResponseHeaders headers) + { + if (headers.TryGetValues("Azure-AsyncOperation", out var __azureAsyncOperationHeader0)) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal)this).AzureAsyncOperation = System.Linq.Enumerable.FirstOrDefault(__azureAsyncOperationHeader0) is string __headerAzureAsyncOperationHeader0 ? __headerAzureAsyncOperationHeader0 : (string)null; + } + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__dataConnection), __dataConnection); + await eventListener.AssertObjectIsValid(nameof(__dataConnection), __dataConnection); + } + } + /// Class representing an iot hub data connection. + public partial interface IIotHubDataConnection : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection + { + /// The iot hub consumer group. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The iot hub consumer group.", + SerializedName = @"consumerGroup", + PossibleTypes = new [] { typeof(string) })] + string ConsumerGroup { get; set; } + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The data format of the message. Optionally the data format can be added to each message.", + SerializedName = @"dataFormat", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat? DataFormat { get; set; } + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indication for database routing information from the data connection, by default only database routing information is allowed", + SerializedName = @"databaseRouting", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get; set; } + /// System properties of the iot hub + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"System properties of the iot hub", + SerializedName = @"eventSystemProperties", + PossibleTypes = new [] { typeof(string) })] + string[] EventSystemProperty { get; set; } + /// The resource ID of the Iot hub to be used to create a data connection. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource ID of the Iot hub to be used to create a data connection.", + SerializedName = @"iotHubResourceId", + PossibleTypes = new [] { typeof(string) })] + string IotHubResourceId { get; set; } + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.", + SerializedName = @"mappingRuleName", + PossibleTypes = new [] { typeof(string) })] + string MappingRuleName { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// The name of the share access policy + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the share access policy", + SerializedName = @"sharedAccessPolicyName", + PossibleTypes = new [] { typeof(string) })] + string SharedAccessPolicyName { get; set; } + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The table where the data should be ingested. Optionally the table information can be added to each message.", + SerializedName = @"tableName", + PossibleTypes = new [] { typeof(string) })] + string TableName { get; set; } + + } + /// Class representing an iot hub data connection. + internal partial interface IIotHubDataConnectionInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionInternal + { + /// The iot hub consumer group. + string ConsumerGroup { get; set; } + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat? DataFormat { get; set; } + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting? DatabaseRouting { get; set; } + /// System properties of the iot hub + string[] EventSystemProperty { get; set; } + /// The resource ID of the Iot hub to be used to create a data connection. + string IotHubResourceId { get; set; } + /// + /// The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message. + /// + string MappingRuleName { get; set; } + /// The Iot Hub data connection properties. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubConnectionProperties Property { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// The name of the share access policy + string SharedAccessPolicyName { get; set; } + /// + /// The table where the data should be ingested. Optionally the table information can be added to each message. + /// + string TableName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubDataConnection.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubDataConnection.json.cs new file mode 100644 index 000000000000..d44e06a5d002 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/IotHubDataConnection.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing an iot hub data connection. + public partial class IotHubDataConnection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIotHubDataConnection FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new IotHubDataConnection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal IotHubDataConnection(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __dataConnection = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IotHubConnectionProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __dataConnection?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/KeyVaultProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/KeyVaultProperties.PowerShell.cs new file mode 100644 index 000000000000..ae6d056d1f59 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/KeyVaultProperties.PowerShell.cs @@ -0,0 +1,166 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Properties of the key vault. + [System.ComponentModel.TypeConverter(typeof(KeyVaultPropertiesTypeConverter))] + public partial class KeyVaultProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new KeyVaultProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new KeyVaultProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal KeyVaultProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("KeyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)this).KeyName = (string) content.GetValueForProperty("KeyName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)this).KeyName, global::System.Convert.ToString); + } + if (content.Contains("KeyVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)this).KeyVersion = (string) content.GetValueForProperty("KeyVersion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)this).KeyVersion, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)this).KeyVaultUri = (string) content.GetValueForProperty("KeyVaultUri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)this).KeyVaultUri, global::System.Convert.ToString); + } + if (content.Contains("UserIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)this).UserIdentity = (string) content.GetValueForProperty("UserIdentity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)this).UserIdentity, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal KeyVaultProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("KeyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)this).KeyName = (string) content.GetValueForProperty("KeyName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)this).KeyName, global::System.Convert.ToString); + } + if (content.Contains("KeyVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)this).KeyVersion = (string) content.GetValueForProperty("KeyVersion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)this).KeyVersion, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)this).KeyVaultUri = (string) content.GetValueForProperty("KeyVaultUri",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)this).KeyVaultUri, global::System.Convert.ToString); + } + if (content.Contains("UserIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)this).UserIdentity = (string) content.GetValueForProperty("UserIdentity",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal)this).UserIdentity, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the key vault. + [System.ComponentModel.TypeConverter(typeof(KeyVaultPropertiesTypeConverter))] + public partial interface IKeyVaultProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/KeyVaultProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/KeyVaultProperties.TypeConverter.cs new file mode 100644 index 000000000000..8e48c66990f6 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/KeyVaultProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class KeyVaultPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return KeyVaultProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return KeyVaultProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return KeyVaultProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/KeyVaultProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/KeyVaultProperties.cs new file mode 100644 index 000000000000..fd58a5efb4eb --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/KeyVaultProperties.cs @@ -0,0 +1,102 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Properties of the key vault. + public partial class KeyVaultProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultPropertiesInternal + { + + /// Backing field for property. + private string _keyName; + + /// The name of the key vault key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string KeyName { get => this._keyName; set => this._keyName = value; } + + /// Backing field for property. + private string _keyVaultUri; + + /// The Uri of the key vault. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string KeyVaultUri { get => this._keyVaultUri; set => this._keyVaultUri = value; } + + /// Backing field for property. + private string _keyVersion; + + /// The version of the key vault key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string KeyVersion { get => this._keyVersion; set => this._keyVersion = value; } + + /// Backing field for property. + private string _userIdentity; + + /// The user assigned identity (ARM resource id) that has access to the key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string UserIdentity { get => this._userIdentity; set => this._userIdentity = value; } + + /// Creates an new instance. + public KeyVaultProperties() + { + + } + } + /// Properties of the key vault. + public partial interface IKeyVaultProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The name of the key vault key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the key vault key.", + SerializedName = @"keyName", + PossibleTypes = new [] { typeof(string) })] + string KeyName { get; set; } + /// The Uri of the key vault. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Uri of the key vault.", + SerializedName = @"keyVaultUri", + PossibleTypes = new [] { typeof(string) })] + string KeyVaultUri { get; set; } + /// The version of the key vault key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the key vault key.", + SerializedName = @"keyVersion", + PossibleTypes = new [] { typeof(string) })] + string KeyVersion { get; set; } + /// The user assigned identity (ARM resource id) that has access to the key. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user assigned identity (ARM resource id) that has access to the key.", + SerializedName = @"userIdentity", + PossibleTypes = new [] { typeof(string) })] + string UserIdentity { get; set; } + + } + /// Properties of the key vault. + internal partial interface IKeyVaultPropertiesInternal + + { + /// The name of the key vault key. + string KeyName { get; set; } + /// The Uri of the key vault. + string KeyVaultUri { get; set; } + /// The version of the key vault key. + string KeyVersion { get; set; } + /// The user assigned identity (ARM resource id) that has access to the key. + string UserIdentity { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/KeyVaultProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/KeyVaultProperties.json.cs new file mode 100644 index 000000000000..3132e49f29eb --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/KeyVaultProperties.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Properties of the key vault. + public partial class KeyVaultProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IKeyVaultProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new KeyVaultProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal KeyVaultProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_keyName = If( json?.PropertyT("keyName"), out var __jsonKeyName) ? (string)__jsonKeyName : (string)KeyName;} + {_keyVersion = If( json?.PropertyT("keyVersion"), out var __jsonKeyVersion) ? (string)__jsonKeyVersion : (string)KeyVersion;} + {_keyVaultUri = If( json?.PropertyT("keyVaultUri"), out var __jsonKeyVaultUri) ? (string)__jsonKeyVaultUri : (string)KeyVaultUri;} + {_userIdentity = If( json?.PropertyT("userIdentity"), out var __jsonUserIdentity) ? (string)__jsonUserIdentity : (string)UserIdentity;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._keyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._keyName.ToString()) : null, "keyName" ,container.Add ); + AddIf( null != (((object)this._keyVersion)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._keyVersion.ToString()) : null, "keyVersion" ,container.Add ); + AddIf( null != (((object)this._keyVaultUri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._keyVaultUri.ToString()) : null, "keyVaultUri" ,container.Add ); + AddIf( null != (((object)this._userIdentity)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._userIdentity.ToString()) : null, "userIdentity" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtension.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtension.PowerShell.cs new file mode 100644 index 000000000000..a7eb0d313002 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtension.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The language extension object. + [System.ComponentModel.TypeConverter(typeof(LanguageExtensionTypeConverter))] + public partial class LanguageExtension + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new LanguageExtension(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new LanguageExtension(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal LanguageExtension(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionInternal)this).Name = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionName?) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionInternal)this).Name, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionName.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal LanguageExtension(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionInternal)this).Name = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionName?) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionInternal)this).Name, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionName.CreateFrom); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The language extension object. + [System.ComponentModel.TypeConverter(typeof(LanguageExtensionTypeConverter))] + public partial interface ILanguageExtension + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtension.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtension.TypeConverter.cs new file mode 100644 index 000000000000..dddd0f5345f1 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtension.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class LanguageExtensionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return LanguageExtension.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return LanguageExtension.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return LanguageExtension.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtension.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtension.cs new file mode 100644 index 000000000000..9749641d27a8 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtension.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The language extension object. + public partial class LanguageExtension : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionName? _name; + + /// The language extension name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionName? Name { get => this._name; set => this._name = value; } + + /// Creates an new instance. + public LanguageExtension() + { + + } + } + /// The language extension object. + public partial interface ILanguageExtension : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The language extension name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The language extension name.", + SerializedName = @"languageExtensionName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionName) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionName? Name { get; set; } + + } + /// The language extension object. + internal partial interface ILanguageExtensionInternal + + { + /// The language extension name. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionName? Name { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtension.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtension.json.cs new file mode 100644 index 000000000000..198b792334c7 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtension.json.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The language extension object. + public partial class LanguageExtension + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new LanguageExtension(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal LanguageExtension(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("languageExtensionName"), out var __jsonLanguageExtensionName) ? (string)__jsonLanguageExtensionName : (string)Name;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._name.ToString()) : null, "languageExtensionName" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtensionsList.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtensionsList.PowerShell.cs new file mode 100644 index 000000000000..ba47c97b2485 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtensionsList.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The list of language extension objects. + [System.ComponentModel.TypeConverter(typeof(LanguageExtensionsListTypeConverter))] + public partial class LanguageExtensionsList + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new LanguageExtensionsList(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new LanguageExtensionsList(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal LanguageExtensionsList(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal LanguageExtensionsList(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The list of language extension objects. + [System.ComponentModel.TypeConverter(typeof(LanguageExtensionsListTypeConverter))] + public partial interface ILanguageExtensionsList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtensionsList.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtensionsList.TypeConverter.cs new file mode 100644 index 000000000000..fd46358ec762 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtensionsList.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class LanguageExtensionsListTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return LanguageExtensionsList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return LanguageExtensionsList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return LanguageExtensionsList.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtensionsList.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtensionsList.cs new file mode 100644 index 000000000000..15d006c09220 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtensionsList.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list of language extension objects. + public partial class LanguageExtensionsList : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsListInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] _value; + + /// The list of language extensions. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public LanguageExtensionsList() + { + + } + } + /// The list of language extension objects. + public partial interface ILanguageExtensionsList : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The list of language extensions. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of language extensions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] Value { get; set; } + + } + /// The list of language extension objects. + internal partial interface ILanguageExtensionsListInternal + + { + /// The list of language extensions. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtensionsList.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtensionsList.json.cs new file mode 100644 index 000000000000..481a218a0497 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/LanguageExtensionsList.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list of language extension objects. + public partial class LanguageExtensionsList + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new LanguageExtensionsList(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal LanguageExtensionsList(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtension.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ListResourceSkusResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ListResourceSkusResult.PowerShell.cs new file mode 100644 index 000000000000..3a99ad7d0c3d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ListResourceSkusResult.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// List of available SKUs for a Kusto Cluster. + [System.ComponentModel.TypeConverter(typeof(ListResourceSkusResultTypeConverter))] + public partial class ListResourceSkusResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IListResourceSkusResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ListResourceSkusResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IListResourceSkusResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ListResourceSkusResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IListResourceSkusResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ListResourceSkusResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IListResourceSkusResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IListResourceSkusResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureResourceSkuTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ListResourceSkusResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IListResourceSkusResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IListResourceSkusResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureResourceSkuTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// List of available SKUs for a Kusto Cluster. + [System.ComponentModel.TypeConverter(typeof(ListResourceSkusResultTypeConverter))] + public partial interface IListResourceSkusResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ListResourceSkusResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ListResourceSkusResult.TypeConverter.cs new file mode 100644 index 000000000000..01edff45bcc0 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ListResourceSkusResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ListResourceSkusResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IListResourceSkusResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IListResourceSkusResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ListResourceSkusResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ListResourceSkusResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ListResourceSkusResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ListResourceSkusResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ListResourceSkusResult.cs new file mode 100644 index 000000000000..197989d96e43 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ListResourceSkusResult.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// List of available SKUs for a Kusto Cluster. + public partial class ListResourceSkusResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IListResourceSkusResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IListResourceSkusResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku[] _value; + + /// The collection of available SKUs for an existing resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ListResourceSkusResult() + { + + } + } + /// List of available SKUs for a Kusto Cluster. + public partial interface IListResourceSkusResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The collection of available SKUs for an existing resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The collection of available SKUs for an existing resource.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku[] Value { get; set; } + + } + /// List of available SKUs for a Kusto Cluster. + internal partial interface IListResourceSkusResultInternal + + { + /// The collection of available SKUs for an existing resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ListResourceSkusResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ListResourceSkusResult.json.cs new file mode 100644 index 000000000000..84104f8e67af --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ListResourceSkusResult.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// List of available SKUs for a Kusto Cluster. + public partial class ListResourceSkusResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IListResourceSkusResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IListResourceSkusResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IListResourceSkusResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ListResourceSkusResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ListResourceSkusResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AzureResourceSku.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpoint.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpoint.PowerShell.cs new file mode 100644 index 000000000000..7a6a3c75cfc0 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpoint.PowerShell.cs @@ -0,0 +1,270 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing a managed private endpoint. + [System.ComponentModel.TypeConverter(typeof(ManagedPrivateEndpointTypeConverter))] + public partial class ManagedPrivateEndpoint + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedPrivateEndpoint(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedPrivateEndpoint(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedPrivateEndpoint(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpointPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PrivateLinkResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).PrivateLinkResourceId = (string) content.GetValueForProperty("PrivateLinkResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).PrivateLinkResourceId, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkResourceRegion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).PrivateLinkResourceRegion = (string) content.GetValueForProperty("PrivateLinkResourceRegion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).PrivateLinkResourceRegion, global::System.Convert.ToString); + } + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).GroupId, global::System.Convert.ToString); + } + if (content.Contains("RequestMessage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).RequestMessage = (string) content.GetValueForProperty("RequestMessage",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).RequestMessage, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ManagedPrivateEndpoint(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpointPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PrivateLinkResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).PrivateLinkResourceId = (string) content.GetValueForProperty("PrivateLinkResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).PrivateLinkResourceId, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkResourceRegion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).PrivateLinkResourceRegion = (string) content.GetValueForProperty("PrivateLinkResourceRegion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).PrivateLinkResourceRegion, global::System.Convert.ToString); + } + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).GroupId, global::System.Convert.ToString); + } + if (content.Contains("RequestMessage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).RequestMessage = (string) content.GetValueForProperty("RequestMessage",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).RequestMessage, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing a managed private endpoint. + [System.ComponentModel.TypeConverter(typeof(ManagedPrivateEndpointTypeConverter))] + public partial interface IManagedPrivateEndpoint + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpoint.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpoint.TypeConverter.cs new file mode 100644 index 000000000000..93d8696c10df --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpoint.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedPrivateEndpointTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedPrivateEndpoint.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedPrivateEndpoint.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedPrivateEndpoint.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpoint.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpoint.cs new file mode 100644 index 000000000000..0649cf397ec9 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpoint.cs @@ -0,0 +1,288 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing a managed private endpoint. + public partial class ManagedPrivateEndpoint : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(); + + /// Backing field for property. + private string _azureAsyncOperation; + + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string AzureAsyncOperation { get => this._azureAsyncOperation; set => this._azureAsyncOperation = value; } + + /// The groupId in which the managed private endpoint is created. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string GroupId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)Property).GroupId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)Property).GroupId = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpointProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; } + + /// + /// The ARM resource ID of the resource for which the managed private endpoint is created. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string PrivateLinkResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)Property).PrivateLinkResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)Property).PrivateLinkResourceId = value ?? null; } + + /// The region of the resource to which the managed private endpoint is created. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string PrivateLinkResourceRegion { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)Property).PrivateLinkResourceRegion; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)Property).PrivateLinkResourceRegion = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointProperties _property; + + /// A managed private endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpointProperties()); set => this._property = value; } + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)Property).ProvisioningState; } + + /// The user request message. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string RequestMessage { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)Property).RequestMessage; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)Property).RequestMessage = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData _systemData; + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public ManagedPrivateEndpoint() + { + + } + + /// + void Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable.ReadHeaders(global::System.Net.Http.Headers.HttpResponseHeaders headers) + { + if (headers.TryGetValues("Azure-AsyncOperation", out var __azureAsyncOperationHeader0)) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointInternal)this).AzureAsyncOperation = System.Linq.Enumerable.FirstOrDefault(__azureAsyncOperationHeader0) is string __headerAzureAsyncOperationHeader0 ? __headerAzureAsyncOperationHeader0 : (string)null; + } + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Class representing a managed private endpoint. + public partial interface IManagedPrivateEndpoint : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource + { + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"Azure-AsyncOperation", + PossibleTypes = new [] { typeof(string) })] + string AzureAsyncOperation { get; set; } + /// The groupId in which the managed private endpoint is created. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The groupId in which the managed private endpoint is created.", + SerializedName = @"groupId", + PossibleTypes = new [] { typeof(string) })] + string GroupId { get; set; } + /// + /// The ARM resource ID of the resource for which the managed private endpoint is created. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ARM resource ID of the resource for which the managed private endpoint is created.", + SerializedName = @"privateLinkResourceId", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkResourceId { get; set; } + /// The region of the resource to which the managed private endpoint is created. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The region of the resource to which the managed private endpoint is created.", + SerializedName = @"privateLinkResourceRegion", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkResourceRegion { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// The user request message. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user request message.", + SerializedName = @"requestMessage", + PossibleTypes = new [] { typeof(string) })] + string RequestMessage { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource creation (UTC).", + SerializedName = @"createdAt", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity that created the resource.", + SerializedName = @"createdBy", + PossibleTypes = new [] { typeof(string) })] + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource last modification (UTC)", + SerializedName = @"lastModifiedAt", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? SystemDataLastModifiedAt { get; set; } + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity that last modified the resource.", + SerializedName = @"lastModifiedBy", + PossibleTypes = new [] { typeof(string) })] + string SystemDataLastModifiedBy { get; set; } + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that last modified the resource.", + SerializedName = @"lastModifiedByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } + /// Class representing a managed private endpoint. + internal partial interface IManagedPrivateEndpointInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal + { + string AzureAsyncOperation { get; set; } + /// The groupId in which the managed private endpoint is created. + string GroupId { get; set; } + /// + /// The ARM resource ID of the resource for which the managed private endpoint is created. + /// + string PrivateLinkResourceId { get; set; } + /// The region of the resource to which the managed private endpoint is created. + string PrivateLinkResourceRegion { get; set; } + /// A managed private endpoint. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointProperties Property { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// The user request message. + string RequestMessage { get; set; } + /// Metadata pertaining to creation and last modification of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData SystemData { get; set; } + /// The timestamp of resource creation (UTC). + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + global::System.DateTime? SystemDataLastModifiedAt { get; set; } + /// The identity that last modified the resource. + string SystemDataLastModifiedBy { get; set; } + /// The type of identity that last modified the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpoint.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpoint.json.cs new file mode 100644 index 000000000000..64637ffc648d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpoint.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing a managed private endpoint. + public partial class ManagedPrivateEndpoint + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ManagedPrivateEndpoint(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ManagedPrivateEndpoint(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpointProperties.FromJson(__jsonProperties) : Property;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointListResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointListResult.PowerShell.cs new file mode 100644 index 000000000000..3325c5cd33b3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointListResult.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The list managed private endpoints operation response. + [System.ComponentModel.TypeConverter(typeof(ManagedPrivateEndpointListResultTypeConverter))] + public partial class ManagedPrivateEndpointListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedPrivateEndpointListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedPrivateEndpointListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedPrivateEndpointListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpointTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ManagedPrivateEndpointListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpointTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The list managed private endpoints operation response. + [System.ComponentModel.TypeConverter(typeof(ManagedPrivateEndpointListResultTypeConverter))] + public partial interface IManagedPrivateEndpointListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointListResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointListResult.TypeConverter.cs new file mode 100644 index 000000000000..75bce947f8fa --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedPrivateEndpointListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedPrivateEndpointListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedPrivateEndpointListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedPrivateEndpointListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointListResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointListResult.cs new file mode 100644 index 000000000000..df00e6e3b277 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointListResult.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list managed private endpoints operation response. + public partial class ManagedPrivateEndpointListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointListResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointListResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint[] _value; + + /// The list of managed private endpoints. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ManagedPrivateEndpointListResult() + { + + } + } + /// The list managed private endpoints operation response. + public partial interface IManagedPrivateEndpointListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The list of managed private endpoints. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of managed private endpoints.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint[] Value { get; set; } + + } + /// The list managed private endpoints operation response. + internal partial interface IManagedPrivateEndpointListResultInternal + + { + /// The list of managed private endpoints. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointListResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointListResult.json.cs new file mode 100644 index 000000000000..d77314a59738 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointListResult.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list managed private endpoints operation response. + public partial class ManagedPrivateEndpointListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ManagedPrivateEndpointListResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ManagedPrivateEndpointListResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpoint.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointProperties.PowerShell.cs new file mode 100644 index 000000000000..9f3beeacb8cb --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointProperties.PowerShell.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A class representing the properties of a managed private endpoint object. + [System.ComponentModel.TypeConverter(typeof(ManagedPrivateEndpointPropertiesTypeConverter))] + public partial class ManagedPrivateEndpointProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedPrivateEndpointProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedPrivateEndpointProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedPrivateEndpointProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrivateLinkResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).PrivateLinkResourceId = (string) content.GetValueForProperty("PrivateLinkResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).PrivateLinkResourceId, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkResourceRegion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).PrivateLinkResourceRegion = (string) content.GetValueForProperty("PrivateLinkResourceRegion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).PrivateLinkResourceRegion, global::System.Convert.ToString); + } + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).GroupId, global::System.Convert.ToString); + } + if (content.Contains("RequestMessage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).RequestMessage = (string) content.GetValueForProperty("RequestMessage",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).RequestMessage, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ManagedPrivateEndpointProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrivateLinkResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).PrivateLinkResourceId = (string) content.GetValueForProperty("PrivateLinkResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).PrivateLinkResourceId, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkResourceRegion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).PrivateLinkResourceRegion = (string) content.GetValueForProperty("PrivateLinkResourceRegion",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).PrivateLinkResourceRegion, global::System.Convert.ToString); + } + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).GroupId, global::System.Convert.ToString); + } + if (content.Contains("RequestMessage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).RequestMessage = (string) content.GetValueForProperty("RequestMessage",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).RequestMessage, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A class representing the properties of a managed private endpoint object. + [System.ComponentModel.TypeConverter(typeof(ManagedPrivateEndpointPropertiesTypeConverter))] + public partial interface IManagedPrivateEndpointProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointProperties.TypeConverter.cs new file mode 100644 index 000000000000..95bff53e11ee --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedPrivateEndpointPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedPrivateEndpointProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedPrivateEndpointProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedPrivateEndpointProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointProperties.cs new file mode 100644 index 000000000000..fbbaa5515b46 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointProperties.cs @@ -0,0 +1,128 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class representing the properties of a managed private endpoint object. + public partial class ManagedPrivateEndpointProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal + { + + /// Backing field for property. + private string _groupId; + + /// The groupId in which the managed private endpoint is created. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string GroupId { get => this._groupId; set => this._groupId = value; } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private string _privateLinkResourceId; + + /// + /// The ARM resource ID of the resource for which the managed private endpoint is created. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string PrivateLinkResourceId { get => this._privateLinkResourceId; set => this._privateLinkResourceId = value; } + + /// Backing field for property. + private string _privateLinkResourceRegion; + + /// The region of the resource to which the managed private endpoint is created. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string PrivateLinkResourceRegion { get => this._privateLinkResourceRegion; set => this._privateLinkResourceRegion = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? _provisioningState; + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private string _requestMessage; + + /// The user request message. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string RequestMessage { get => this._requestMessage; set => this._requestMessage = value; } + + /// Creates an new instance. + public ManagedPrivateEndpointProperties() + { + + } + } + /// A class representing the properties of a managed private endpoint object. + public partial interface IManagedPrivateEndpointProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The groupId in which the managed private endpoint is created. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The groupId in which the managed private endpoint is created.", + SerializedName = @"groupId", + PossibleTypes = new [] { typeof(string) })] + string GroupId { get; set; } + /// + /// The ARM resource ID of the resource for which the managed private endpoint is created. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The ARM resource ID of the resource for which the managed private endpoint is created.", + SerializedName = @"privateLinkResourceId", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkResourceId { get; set; } + /// The region of the resource to which the managed private endpoint is created. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The region of the resource to which the managed private endpoint is created.", + SerializedName = @"privateLinkResourceRegion", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkResourceRegion { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// The user request message. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user request message.", + SerializedName = @"requestMessage", + PossibleTypes = new [] { typeof(string) })] + string RequestMessage { get; set; } + + } + /// A class representing the properties of a managed private endpoint object. + internal partial interface IManagedPrivateEndpointPropertiesInternal + + { + /// The groupId in which the managed private endpoint is created. + string GroupId { get; set; } + /// + /// The ARM resource ID of the resource for which the managed private endpoint is created. + /// + string PrivateLinkResourceId { get; set; } + /// The region of the resource to which the managed private endpoint is created. + string PrivateLinkResourceRegion { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// The user request message. + string RequestMessage { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointProperties.json.cs new file mode 100644 index 000000000000..9647b0703363 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointProperties.json.cs @@ -0,0 +1,117 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class representing the properties of a managed private endpoint object. + public partial class ManagedPrivateEndpointProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ManagedPrivateEndpointProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ManagedPrivateEndpointProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_privateLinkResourceId = If( json?.PropertyT("privateLinkResourceId"), out var __jsonPrivateLinkResourceId) ? (string)__jsonPrivateLinkResourceId : (string)PrivateLinkResourceId;} + {_privateLinkResourceRegion = If( json?.PropertyT("privateLinkResourceRegion"), out var __jsonPrivateLinkResourceRegion) ? (string)__jsonPrivateLinkResourceRegion : (string)PrivateLinkResourceRegion;} + {_groupId = If( json?.PropertyT("groupId"), out var __jsonGroupId) ? (string)__jsonGroupId : (string)GroupId;} + {_requestMessage = If( json?.PropertyT("requestMessage"), out var __jsonRequestMessage) ? (string)__jsonRequestMessage : (string)RequestMessage;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._privateLinkResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._privateLinkResourceId.ToString()) : null, "privateLinkResourceId" ,container.Add ); + AddIf( null != (((object)this._privateLinkResourceRegion)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._privateLinkResourceRegion.ToString()) : null, "privateLinkResourceRegion" ,container.Add ); + AddIf( null != (((object)this._groupId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._groupId.ToString()) : null, "groupId" ,container.Add ); + AddIf( null != (((object)this._requestMessage)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._requestMessage.ToString()) : null, "requestMessage" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointsCheckNameRequest.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointsCheckNameRequest.PowerShell.cs new file mode 100644 index 000000000000..31bf6c374ad9 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointsCheckNameRequest.PowerShell.cs @@ -0,0 +1,155 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// The result returned from a managedPrivateEndpoints check name availability request. + /// + [System.ComponentModel.TypeConverter(typeof(ManagedPrivateEndpointsCheckNameRequestTypeConverter))] + public partial class ManagedPrivateEndpointsCheckNameRequest + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedPrivateEndpointsCheckNameRequest(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedPrivateEndpointsCheckNameRequest(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedPrivateEndpointsCheckNameRequest(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequestInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequestInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ManagedPrivateEndpointsCheckNameRequest(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequestInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequestInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The result returned from a managedPrivateEndpoints check name availability request. + [System.ComponentModel.TypeConverter(typeof(ManagedPrivateEndpointsCheckNameRequestTypeConverter))] + public partial interface IManagedPrivateEndpointsCheckNameRequest + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointsCheckNameRequest.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointsCheckNameRequest.TypeConverter.cs new file mode 100644 index 000000000000..aaac6d4990d8 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointsCheckNameRequest.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedPrivateEndpointsCheckNameRequestTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedPrivateEndpointsCheckNameRequest.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedPrivateEndpointsCheckNameRequest.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedPrivateEndpointsCheckNameRequest.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointsCheckNameRequest.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointsCheckNameRequest.cs new file mode 100644 index 000000000000..afb47670d8c2 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointsCheckNameRequest.cs @@ -0,0 +1,79 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// The result returned from a managedPrivateEndpoints check name availability request. + /// + public partial class ManagedPrivateEndpointsCheckNameRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequestInternal + { + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequestInternal.Type { get => this._type; set { {_type = value;} } } + + /// Backing field for property. + private string _name; + + /// Managed private endpoint resource name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _type= @"Microsoft.Kusto/clusters/managedPrivateEndpoints"; + + /// + /// The type of resource, for instance Microsoft.Kusto/clusters/managedPrivateEndpoints. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Type { get => this._type; } + + /// Creates an new instance. + public ManagedPrivateEndpointsCheckNameRequest() + { + + } + } + /// The result returned from a managedPrivateEndpoints check name availability request. + public partial interface IManagedPrivateEndpointsCheckNameRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Managed private endpoint resource name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Managed private endpoint resource name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// + /// The type of resource, for instance Microsoft.Kusto/clusters/managedPrivateEndpoints. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = true, + Description = @"The type of resource, for instance Microsoft.Kusto/clusters/managedPrivateEndpoints.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; } + + } + /// The result returned from a managedPrivateEndpoints check name availability request. + internal partial interface IManagedPrivateEndpointsCheckNameRequestInternal + + { + /// Managed private endpoint resource name. + string Name { get; set; } + /// + /// The type of resource, for instance Microsoft.Kusto/clusters/managedPrivateEndpoints. + /// + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointsCheckNameRequest.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointsCheckNameRequest.json.cs new file mode 100644 index 000000000000..811bef1d8cda --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ManagedPrivateEndpointsCheckNameRequest.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// The result returned from a managedPrivateEndpoints check name availability request. + /// + public partial class ManagedPrivateEndpointsCheckNameRequest + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ManagedPrivateEndpointsCheckNameRequest(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ManagedPrivateEndpointsCheckNameRequest(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Operation.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Operation.PowerShell.cs new file mode 100644 index 000000000000..d6784a795b55 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Operation.PowerShell.cs @@ -0,0 +1,198 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A REST API operation + [System.ComponentModel.TypeConverter(typeof(OperationTypeConverter))] + public partial class Operation + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Operation(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Operation(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Operation(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Display")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).Display = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplay) content.GetValueForProperty("Display",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).Display, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationDisplayTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Origin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).Origin = (string) content.GetValueForProperty("Origin",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).Origin, global::System.Convert.ToString); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.AnyTypeConverter.ConvertFrom); + } + if (content.Contains("DisplayProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).DisplayProvider = (string) content.GetValueForProperty("DisplayProvider",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).DisplayProvider, global::System.Convert.ToString); + } + if (content.Contains("DisplayOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).DisplayOperation = (string) content.GetValueForProperty("DisplayOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).DisplayOperation, global::System.Convert.ToString); + } + if (content.Contains("DisplayResource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).DisplayResource = (string) content.GetValueForProperty("DisplayResource",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).DisplayResource, global::System.Convert.ToString); + } + if (content.Contains("DisplayDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).DisplayDescription = (string) content.GetValueForProperty("DisplayDescription",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).DisplayDescription, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Operation(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Display")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).Display = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplay) content.GetValueForProperty("Display",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).Display, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationDisplayTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Origin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).Origin = (string) content.GetValueForProperty("Origin",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).Origin, global::System.Convert.ToString); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.AnyTypeConverter.ConvertFrom); + } + if (content.Contains("DisplayProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).DisplayProvider = (string) content.GetValueForProperty("DisplayProvider",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).DisplayProvider, global::System.Convert.ToString); + } + if (content.Contains("DisplayOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).DisplayOperation = (string) content.GetValueForProperty("DisplayOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).DisplayOperation, global::System.Convert.ToString); + } + if (content.Contains("DisplayResource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).DisplayResource = (string) content.GetValueForProperty("DisplayResource",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).DisplayResource, global::System.Convert.ToString); + } + if (content.Contains("DisplayDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).DisplayDescription = (string) content.GetValueForProperty("DisplayDescription",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal)this).DisplayDescription, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A REST API operation + [System.ComponentModel.TypeConverter(typeof(OperationTypeConverter))] + public partial interface IOperation + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Operation.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Operation.TypeConverter.cs new file mode 100644 index 000000000000..aed78cf1c798 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Operation.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OperationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Operation.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Operation.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Operation.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Operation.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Operation.cs new file mode 100644 index 000000000000..25d395bd9e95 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Operation.cs @@ -0,0 +1,153 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A REST API operation + public partial class Operation : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplay _display; + + /// The object that describes the operation. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplay Display { get => (this._display = this._display ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationDisplay()); set => this._display = value; } + + /// The friendly name of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string DisplayDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)Display).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)Display).Description = value ?? null; } + + /// For example: read, write, delete. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string DisplayOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)Display).Operation; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)Display).Operation = value ?? null; } + + /// Friendly name of the resource provider. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string DisplayProvider { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)Display).Provider; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)Display).Provider = value ?? null; } + + /// The resource type on which the operation is performed. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string DisplayResource { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)Display).Resource; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)Display).Resource = value ?? null; } + + /// Internal Acessors for Display + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplay Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationInternal.Display { get => (this._display = this._display ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationDisplay()); set { {_display = value;} } } + + /// Backing field for property. + private string _name; + + /// This is of the format {provider}/{resource}/{operation}. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _origin; + + /// The intended executor of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Origin { get => this._origin; set => this._origin = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny _property; + + /// Any object + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Any()); set => this._property = value; } + + /// Creates an new instance. + public Operation() + { + + } + } + /// A REST API operation + public partial interface IOperation : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The friendly name of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The friendly name of the operation.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string DisplayDescription { get; set; } + /// For example: read, write, delete. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"For example: read, write, delete.", + SerializedName = @"operation", + PossibleTypes = new [] { typeof(string) })] + string DisplayOperation { get; set; } + /// Friendly name of the resource provider. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of the resource provider.", + SerializedName = @"provider", + PossibleTypes = new [] { typeof(string) })] + string DisplayProvider { get; set; } + /// The resource type on which the operation is performed. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource type on which the operation is performed.", + SerializedName = @"resource", + PossibleTypes = new [] { typeof(string) })] + string DisplayResource { get; set; } + /// This is of the format {provider}/{resource}/{operation}. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This is of the format {provider}/{resource}/{operation}.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// The intended executor of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The intended executor of the operation.", + SerializedName = @"origin", + PossibleTypes = new [] { typeof(string) })] + string Origin { get; set; } + /// Any object + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Any object", + SerializedName = @"properties", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny Property { get; set; } + + } + /// A REST API operation + internal partial interface IOperationInternal + + { + /// The object that describes the operation. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplay Display { get; set; } + /// The friendly name of the operation. + string DisplayDescription { get; set; } + /// For example: read, write, delete. + string DisplayOperation { get; set; } + /// Friendly name of the resource provider. + string DisplayProvider { get; set; } + /// The resource type on which the operation is performed. + string DisplayResource { get; set; } + /// This is of the format {provider}/{resource}/{operation}. + string Name { get; set; } + /// The intended executor of the operation. + string Origin { get; set; } + /// Any object + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny Property { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Operation.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Operation.json.cs new file mode 100644 index 000000000000..9ecfc6e67298 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Operation.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A REST API operation + public partial class Operation + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new Operation(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal Operation(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_display = If( json?.PropertyT("display"), out var __jsonDisplay) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationDisplay.FromJson(__jsonDisplay) : Display;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_origin = If( json?.PropertyT("origin"), out var __jsonOrigin) ? (string)__jsonOrigin : (string)Origin;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Any.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._display ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._display.ToJson(null,serializationMode) : null, "display" ,container.Add ); + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._origin)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._origin.ToString()) : null, "origin" ,container.Add ); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationDisplay.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationDisplay.PowerShell.cs new file mode 100644 index 000000000000..f829bdd21393 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationDisplay.PowerShell.cs @@ -0,0 +1,166 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The object that describes the operation. + [System.ComponentModel.TypeConverter(typeof(OperationDisplayTypeConverter))] + public partial class OperationDisplay + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplay DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OperationDisplay(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplay DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OperationDisplay(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplay FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OperationDisplay(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Provider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)this).Provider = (string) content.GetValueForProperty("Provider",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)this).Provider, global::System.Convert.ToString); + } + if (content.Contains("Operation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)this).Operation = (string) content.GetValueForProperty("Operation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)this).Operation, global::System.Convert.ToString); + } + if (content.Contains("Resource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)this).Resource = (string) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)this).Resource, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)this).Description, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal OperationDisplay(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Provider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)this).Provider = (string) content.GetValueForProperty("Provider",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)this).Provider, global::System.Convert.ToString); + } + if (content.Contains("Operation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)this).Operation = (string) content.GetValueForProperty("Operation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)this).Operation, global::System.Convert.ToString); + } + if (content.Contains("Resource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)this).Resource = (string) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)this).Resource, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal)this).Description, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The object that describes the operation. + [System.ComponentModel.TypeConverter(typeof(OperationDisplayTypeConverter))] + public partial interface IOperationDisplay + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationDisplay.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationDisplay.TypeConverter.cs new file mode 100644 index 000000000000..b7fd3f93ecb9 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationDisplay.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OperationDisplayTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplay ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplay).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OperationDisplay.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OperationDisplay.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OperationDisplay.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationDisplay.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationDisplay.cs new file mode 100644 index 000000000000..3dbc586d4061 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationDisplay.cs @@ -0,0 +1,102 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The object that describes the operation. + public partial class OperationDisplay : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplay, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplayInternal + { + + /// Backing field for property. + private string _description; + + /// The friendly name of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _operation; + + /// For example: read, write, delete. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Operation { get => this._operation; set => this._operation = value; } + + /// Backing field for property. + private string _provider; + + /// Friendly name of the resource provider. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Provider { get => this._provider; set => this._provider = value; } + + /// Backing field for property. + private string _resource; + + /// The resource type on which the operation is performed. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Resource { get => this._resource; set => this._resource = value; } + + /// Creates an new instance. + public OperationDisplay() + { + + } + } + /// The object that describes the operation. + public partial interface IOperationDisplay : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The friendly name of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The friendly name of the operation.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// For example: read, write, delete. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"For example: read, write, delete.", + SerializedName = @"operation", + PossibleTypes = new [] { typeof(string) })] + string Operation { get; set; } + /// Friendly name of the resource provider. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly name of the resource provider.", + SerializedName = @"provider", + PossibleTypes = new [] { typeof(string) })] + string Provider { get; set; } + /// The resource type on which the operation is performed. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource type on which the operation is performed.", + SerializedName = @"resource", + PossibleTypes = new [] { typeof(string) })] + string Resource { get; set; } + + } + /// The object that describes the operation. + internal partial interface IOperationDisplayInternal + + { + /// The friendly name of the operation. + string Description { get; set; } + /// For example: read, write, delete. + string Operation { get; set; } + /// Friendly name of the resource provider. + string Provider { get; set; } + /// The resource type on which the operation is performed. + string Resource { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationDisplay.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationDisplay.json.cs new file mode 100644 index 000000000000..271155916063 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationDisplay.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The object that describes the operation. + public partial class OperationDisplay + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplay. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplay. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationDisplay FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new OperationDisplay(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal OperationDisplay(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_provider = If( json?.PropertyT("provider"), out var __jsonProvider) ? (string)__jsonProvider : (string)Provider;} + {_operation = If( json?.PropertyT("operation"), out var __jsonOperation) ? (string)__jsonOperation : (string)Operation;} + {_resource = If( json?.PropertyT("resource"), out var __jsonResource) ? (string)__jsonResource : (string)Resource;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._provider)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._provider.ToString()) : null, "provider" ,container.Add ); + AddIf( null != (((object)this._operation)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._operation.ToString()) : null, "operation" ,container.Add ); + AddIf( null != (((object)this._resource)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._resource.ToString()) : null, "resource" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationListResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationListResult.PowerShell.cs new file mode 100644 index 000000000000..62a0e4370f84 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationListResult.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// Result of the request to list REST API operations. It contains a list of operations and a URL nextLink to get the next + /// set of results. + /// + [System.ComponentModel.TypeConverter(typeof(OperationListResultTypeConverter))] + public partial class OperationListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OperationListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OperationListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OperationListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResultInternal)this).NextLink, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal OperationListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResultInternal)this).NextLink, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the request to list REST API operations. It contains a list of operations and a URL nextLink to get the next + /// set of results. + [System.ComponentModel.TypeConverter(typeof(OperationListResultTypeConverter))] + public partial interface IOperationListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationListResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationListResult.TypeConverter.cs new file mode 100644 index 000000000000..77a2e7fa4f7b --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OperationListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OperationListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OperationListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OperationListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationListResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationListResult.cs new file mode 100644 index 000000000000..ee2d6ac69559 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationListResult.cs @@ -0,0 +1,73 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// Result of the request to list REST API operations. It contains a list of operations and a URL nextLink to get the next + /// set of results. + /// + public partial class OperationListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResultInternal + { + + /// Backing field for property. + private string _nextLink; + + /// The URL to get the next set of operation list results if there are any. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation[] _value; + + /// The list of operations supported by the resource provider. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public OperationListResult() + { + + } + } + /// Result of the request to list REST API operations. It contains a list of operations and a URL nextLink to get the next + /// set of results. + public partial interface IOperationListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The URL to get the next set of operation list results if there are any. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URL to get the next set of operation list results if there are any.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// The list of operations supported by the resource provider. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of operations supported by the resource provider.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation[] Value { get; set; } + + } + /// Result of the request to list REST API operations. It contains a list of operations and a URL nextLink to get the next + /// set of results. + internal partial interface IOperationListResultInternal + + { + /// The URL to get the next set of operation list results if there are any. + string NextLink { get; set; } + /// The list of operations supported by the resource provider. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationListResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationListResult.json.cs new file mode 100644 index 000000000000..2035a0934eb3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationListResult.json.cs @@ -0,0 +1,119 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// Result of the request to list REST API operations. It contains a list of operations and a URL nextLink to get the next + /// set of results. + /// + public partial class OperationListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new OperationListResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal OperationListResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Operation.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._nextLink.ToString()) : null, "nextLink" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResult.PowerShell.cs new file mode 100644 index 000000000000..3ac630f88ac5 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResult.PowerShell.cs @@ -0,0 +1,238 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Operation Result Entity. + [System.ComponentModel.TypeConverter(typeof(OperationResultTypeConverter))] + public partial class OperationResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OperationResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OperationResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OperationResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationResultPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorProperties) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationResultErrorPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status.CreateFrom); + } + if (content.Contains("StartTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).StartTime = (global::System.DateTime?) content.GetValueForProperty("StartTime",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).StartTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("EndTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).EndTime = (global::System.DateTime?) content.GetValueForProperty("EndTime",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).EndTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PercentComplete")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).PercentComplete = (double?) content.GetValueForProperty("PercentComplete",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).PercentComplete, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("OperationKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).OperationKind = (string) content.GetValueForProperty("OperationKind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).OperationKind, global::System.Convert.ToString); + } + if (content.Contains("OperationState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).OperationState = (string) content.GetValueForProperty("OperationState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).OperationState, global::System.Convert.ToString); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Message, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal OperationResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationResultPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorProperties) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationResultErrorPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status.CreateFrom); + } + if (content.Contains("StartTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).StartTime = (global::System.DateTime?) content.GetValueForProperty("StartTime",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).StartTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("EndTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).EndTime = (global::System.DateTime?) content.GetValueForProperty("EndTime",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).EndTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PercentComplete")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).PercentComplete = (double?) content.GetValueForProperty("PercentComplete",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).PercentComplete, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("OperationKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).OperationKind = (string) content.GetValueForProperty("OperationKind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).OperationKind, global::System.Convert.ToString); + } + if (content.Contains("OperationState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).OperationState = (string) content.GetValueForProperty("OperationState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).OperationState, global::System.Convert.ToString); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal)this).Message, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Operation Result Entity. + [System.ComponentModel.TypeConverter(typeof(OperationResultTypeConverter))] + public partial interface IOperationResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResult.TypeConverter.cs new file mode 100644 index 000000000000..4b281f47219a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OperationResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OperationResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OperationResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OperationResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResult.cs new file mode 100644 index 000000000000..483c5e79b935 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResult.cs @@ -0,0 +1,242 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Operation Result Entity. + public partial class OperationResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal + { + + /// The code of the error. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string Code { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorPropertiesInternal)Error).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorPropertiesInternal)Error).Code = value ?? null; } + + /// Backing field for property. + private global::System.DateTime? _endTime; + + /// The operation end time + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public global::System.DateTime? EndTime { get => this._endTime; set => this._endTime = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorProperties _error; + + /// Object that contains the error code and message if the operation failed. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorProperties Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationResultErrorProperties()); set => this._error = value; } + + /// Backing field for property. + private string _id; + + /// ID of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Id { get => this._id; } + + /// The error message. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string Message { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorPropertiesInternal)Error).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorPropertiesInternal)Error).Message = value ?? null; } + + /// Internal Acessors for Error + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal.Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationResultErrorProperties()); set { {_error = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal.Id { get => this._id; set { {_id = value;} } } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationResultProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Status + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultInternal.Status { get => this._status; set { {_status = value;} } } + + /// Backing field for property. + private string _name; + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// The kind of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string OperationKind { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)Property).OperationKind; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)Property).OperationKind = value ?? null; } + + /// The state of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string OperationState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)Property).OperationState; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)Property).OperationState = value ?? null; } + + /// Backing field for property. + private double? _percentComplete; + + /// Percentage completed. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public double? PercentComplete { get => this._percentComplete; set => this._percentComplete = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultProperties _property; + + /// Properties of the operation results + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationResultProperties()); set => this._property = value; } + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)Property).ProvisioningState; } + + /// Backing field for property. + private global::System.DateTime? _startTime; + + /// The operation start time + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public global::System.DateTime? StartTime { get => this._startTime; set => this._startTime = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status? _status; + + /// status of the Operation result. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status? Status { get => this._status; } + + /// Creates an new instance. + public OperationResult() + { + + } + } + /// Operation Result Entity. + public partial interface IOperationResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The code of the error. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The code of the error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; set; } + /// The operation end time + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The operation end time", + SerializedName = @"endTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? EndTime { get; set; } + /// ID of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ID of the resource.", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; } + /// The error message. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The error message.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Name of the resource.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// The kind of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The kind of the operation.", + SerializedName = @"operationKind", + PossibleTypes = new [] { typeof(string) })] + string OperationKind { get; set; } + /// The state of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The state of the operation.", + SerializedName = @"operationState", + PossibleTypes = new [] { typeof(string) })] + string OperationState { get; set; } + /// Percentage completed. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Percentage completed.", + SerializedName = @"percentComplete", + PossibleTypes = new [] { typeof(double) })] + double? PercentComplete { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// The operation start time + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The operation start time", + SerializedName = @"startTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? StartTime { get; set; } + /// status of the Operation result. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"status of the Operation result.", + SerializedName = @"status", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status? Status { get; } + + } + /// Operation Result Entity. + internal partial interface IOperationResultInternal + + { + /// The code of the error. + string Code { get; set; } + /// The operation end time + global::System.DateTime? EndTime { get; set; } + /// Object that contains the error code and message if the operation failed. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorProperties Error { get; set; } + /// ID of the resource. + string Id { get; set; } + /// The error message. + string Message { get; set; } + /// Name of the resource. + string Name { get; set; } + /// The kind of the operation. + string OperationKind { get; set; } + /// The state of the operation. + string OperationState { get; set; } + /// Percentage completed. + double? PercentComplete { get; set; } + /// Properties of the operation results + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultProperties Property { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// The operation start time + global::System.DateTime? StartTime { get; set; } + /// status of the Operation result. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status? Status { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResult.json.cs new file mode 100644 index 000000000000..87252c40cc04 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResult.json.cs @@ -0,0 +1,129 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Operation Result Entity. + public partial class OperationResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new OperationResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal OperationResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationResultProperties.FromJson(__jsonProperties) : Property;} + {_error = If( json?.PropertyT("error"), out var __jsonError) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OperationResultErrorProperties.FromJson(__jsonError) : Error;} + {_id = If( json?.PropertyT("id"), out var __jsonId) ? (string)__jsonId : (string)Id;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_status = If( json?.PropertyT("status"), out var __jsonStatus) ? (string)__jsonStatus : (string)Status;} + {_startTime = If( json?.PropertyT("startTime"), out var __jsonStartTime) ? global::System.DateTime.TryParse((string)__jsonStartTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonStartTimeValue) ? __jsonStartTimeValue : StartTime : StartTime;} + {_endTime = If( json?.PropertyT("endTime"), out var __jsonEndTime) ? global::System.DateTime.TryParse((string)__jsonEndTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonEndTimeValue) ? __jsonEndTimeValue : EndTime : EndTime;} + {_percentComplete = If( json?.PropertyT("percentComplete"), out var __jsonPercentComplete) ? (double?)__jsonPercentComplete : PercentComplete;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._error ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._error.ToJson(null,serializationMode) : null, "error" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._id.ToString()) : null, "id" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._status)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._status.ToString()) : null, "status" ,container.Add ); + } + AddIf( null != this._startTime ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._startTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "startTime" ,container.Add ); + AddIf( null != this._endTime ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._endTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "endTime" ,container.Add ); + AddIf( null != this._percentComplete ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNumber((double)this._percentComplete) : null, "percentComplete" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultErrorProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultErrorProperties.PowerShell.cs new file mode 100644 index 000000000000..8c75734d516e --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultErrorProperties.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Operation result error properties + [System.ComponentModel.TypeConverter(typeof(OperationResultErrorPropertiesTypeConverter))] + public partial class OperationResultErrorProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OperationResultErrorProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OperationResultErrorProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OperationResultErrorProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorPropertiesInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorPropertiesInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorPropertiesInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorPropertiesInternal)this).Message, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal OperationResultErrorProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorPropertiesInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorPropertiesInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorPropertiesInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorPropertiesInternal)this).Message, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Operation result error properties + [System.ComponentModel.TypeConverter(typeof(OperationResultErrorPropertiesTypeConverter))] + public partial interface IOperationResultErrorProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultErrorProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultErrorProperties.TypeConverter.cs new file mode 100644 index 000000000000..cc30094d89c6 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultErrorProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OperationResultErrorPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OperationResultErrorProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OperationResultErrorProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OperationResultErrorProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultErrorProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultErrorProperties.cs new file mode 100644 index 000000000000..2db2f43b84a4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultErrorProperties.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Operation result error properties + public partial class OperationResultErrorProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorPropertiesInternal + { + + /// Backing field for property. + private string _code; + + /// The code of the error. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Code { get => this._code; set => this._code = value; } + + /// Backing field for property. + private string _message; + + /// The error message. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Message { get => this._message; set => this._message = value; } + + /// Creates an new instance. + public OperationResultErrorProperties() + { + + } + } + /// Operation result error properties + public partial interface IOperationResultErrorProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The code of the error. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The code of the error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; set; } + /// The error message. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The error message.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + + } + /// Operation result error properties + internal partial interface IOperationResultErrorPropertiesInternal + + { + /// The code of the error. + string Code { get; set; } + /// The error message. + string Message { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultErrorProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultErrorProperties.json.cs new file mode 100644 index 000000000000..8cff4d4fb160 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultErrorProperties.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Operation result error properties + public partial class OperationResultErrorProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultErrorProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new OperationResultErrorProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal OperationResultErrorProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_code = If( json?.PropertyT("code"), out var __jsonCode) ? (string)__jsonCode : (string)Code;} + {_message = If( json?.PropertyT("message"), out var __jsonMessage) ? (string)__jsonMessage : (string)Message;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._code)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._code.ToString()) : null, "code" ,container.Add ); + AddIf( null != (((object)this._message)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._message.ToString()) : null, "message" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultProperties.PowerShell.cs new file mode 100644 index 000000000000..f2c310d88b31 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultProperties.PowerShell.cs @@ -0,0 +1,158 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Operation result properties + [System.ComponentModel.TypeConverter(typeof(OperationResultPropertiesTypeConverter))] + public partial class OperationResultProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OperationResultProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OperationResultProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OperationResultProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OperationKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)this).OperationKind = (string) content.GetValueForProperty("OperationKind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)this).OperationKind, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("OperationState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)this).OperationState = (string) content.GetValueForProperty("OperationState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)this).OperationState, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal OperationResultProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OperationKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)this).OperationKind = (string) content.GetValueForProperty("OperationKind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)this).OperationKind, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("OperationState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)this).OperationState = (string) content.GetValueForProperty("OperationState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal)this).OperationState, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Operation result properties + [System.ComponentModel.TypeConverter(typeof(OperationResultPropertiesTypeConverter))] + public partial interface IOperationResultProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultProperties.TypeConverter.cs new file mode 100644 index 000000000000..516ffc8c18cb --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OperationResultPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OperationResultProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OperationResultProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OperationResultProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultProperties.cs new file mode 100644 index 000000000000..aded458979f0 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultProperties.cs @@ -0,0 +1,88 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Operation result properties + public partial class OperationResultProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal + { + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private string _operationKind; + + /// The kind of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string OperationKind { get => this._operationKind; set => this._operationKind = value; } + + /// Backing field for property. + private string _operationState; + + /// The state of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string OperationState { get => this._operationState; set => this._operationState = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? _provisioningState; + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Creates an new instance. + public OperationResultProperties() + { + + } + } + /// Operation result properties + public partial interface IOperationResultProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The kind of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The kind of the operation.", + SerializedName = @"operationKind", + PossibleTypes = new [] { typeof(string) })] + string OperationKind { get; set; } + /// The state of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The state of the operation.", + SerializedName = @"operationState", + PossibleTypes = new [] { typeof(string) })] + string OperationState { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + + } + /// Operation result properties + internal partial interface IOperationResultPropertiesInternal + + { + /// The kind of the operation. + string OperationKind { get; set; } + /// The state of the operation. + string OperationState { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultProperties.json.cs new file mode 100644 index 000000000000..62b7f4fad4ae --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OperationResultProperties.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Operation result properties + public partial class OperationResultProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResultProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new OperationResultProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal OperationResultProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_operationKind = If( json?.PropertyT("operationKind"), out var __jsonOperationKind) ? (string)__jsonOperationKind : (string)OperationKind;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_operationState = If( json?.PropertyT("operationState"), out var __jsonOperationState) ? (string)__jsonOperationState : (string)OperationState;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._operationKind)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._operationKind.ToString()) : null, "operationKind" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != (((object)this._operationState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._operationState.ToString()) : null, "operationState" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OptimizedAutoscale.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OptimizedAutoscale.PowerShell.cs new file mode 100644 index 000000000000..a8af38634405 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OptimizedAutoscale.PowerShell.cs @@ -0,0 +1,166 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A class that contains the optimized auto scale definition. + [System.ComponentModel.TypeConverter(typeof(OptimizedAutoscaleTypeConverter))] + public partial class OptimizedAutoscale + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OptimizedAutoscale(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OptimizedAutoscale(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OptimizedAutoscale(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)this).Version = (int) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)this).Version, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IsEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)this).IsEnabled = (bool) content.GetValueForProperty("IsEnabled",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)this).IsEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Minimum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)this).Minimum = (int) content.GetValueForProperty("Minimum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)this).Minimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Maximum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)this).Maximum = (int) content.GetValueForProperty("Maximum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)this).Maximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal OptimizedAutoscale(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)this).Version = (int) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)this).Version, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IsEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)this).IsEnabled = (bool) content.GetValueForProperty("IsEnabled",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)this).IsEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Minimum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)this).Minimum = (int) content.GetValueForProperty("Minimum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)this).Minimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Maximum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)this).Maximum = (int) content.GetValueForProperty("Maximum",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal)this).Maximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A class that contains the optimized auto scale definition. + [System.ComponentModel.TypeConverter(typeof(OptimizedAutoscaleTypeConverter))] + public partial interface IOptimizedAutoscale + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OptimizedAutoscale.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OptimizedAutoscale.TypeConverter.cs new file mode 100644 index 000000000000..d68bb9c7e424 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OptimizedAutoscale.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OptimizedAutoscaleTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OptimizedAutoscale.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OptimizedAutoscale.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OptimizedAutoscale.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OptimizedAutoscale.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OptimizedAutoscale.cs new file mode 100644 index 000000000000..55ddc5d63980 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OptimizedAutoscale.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class that contains the optimized auto scale definition. + public partial class OptimizedAutoscale : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscaleInternal + { + + /// Backing field for property. + private bool _isEnabled; + + /// + /// A boolean value that indicate if the optimized autoscale feature is enabled or not. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public bool IsEnabled { get => this._isEnabled; set => this._isEnabled = value; } + + /// Backing field for property. + private int _maximum; + + /// Maximum allowed instances count. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public int Maximum { get => this._maximum; set => this._maximum = value; } + + /// Backing field for property. + private int _minimum; + + /// Minimum allowed instances count. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public int Minimum { get => this._minimum; set => this._minimum = value; } + + /// Backing field for property. + private int _version; + + /// The version of the template defined, for instance 1. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public int Version { get => this._version; set => this._version = value; } + + /// Creates an new instance. + public OptimizedAutoscale() + { + + } + } + /// A class that contains the optimized auto scale definition. + public partial interface IOptimizedAutoscale : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// + /// A boolean value that indicate if the optimized autoscale feature is enabled or not. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"A boolean value that indicate if the optimized autoscale feature is enabled or not.", + SerializedName = @"isEnabled", + PossibleTypes = new [] { typeof(bool) })] + bool IsEnabled { get; set; } + /// Maximum allowed instances count. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Maximum allowed instances count.", + SerializedName = @"maximum", + PossibleTypes = new [] { typeof(int) })] + int Maximum { get; set; } + /// Minimum allowed instances count. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Minimum allowed instances count.", + SerializedName = @"minimum", + PossibleTypes = new [] { typeof(int) })] + int Minimum { get; set; } + /// The version of the template defined, for instance 1. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The version of the template defined, for instance 1.", + SerializedName = @"version", + PossibleTypes = new [] { typeof(int) })] + int Version { get; set; } + + } + /// A class that contains the optimized auto scale definition. + internal partial interface IOptimizedAutoscaleInternal + + { + /// + /// A boolean value that indicate if the optimized autoscale feature is enabled or not. + /// + bool IsEnabled { get; set; } + /// Maximum allowed instances count. + int Maximum { get; set; } + /// Minimum allowed instances count. + int Minimum { get; set; } + /// The version of the template defined, for instance 1. + int Version { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OptimizedAutoscale.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OptimizedAutoscale.json.cs new file mode 100644 index 000000000000..995557fcae59 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OptimizedAutoscale.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class that contains the optimized auto scale definition. + public partial class OptimizedAutoscale + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOptimizedAutoscale FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new OptimizedAutoscale(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal OptimizedAutoscale(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_version = If( json?.PropertyT("version"), out var __jsonVersion) ? (int)__jsonVersion : Version;} + {_isEnabled = If( json?.PropertyT("isEnabled"), out var __jsonIsEnabled) ? (bool)__jsonIsEnabled : IsEnabled;} + {_minimum = If( json?.PropertyT("minimum"), out var __jsonMinimum) ? (int)__jsonMinimum : Minimum;} + {_maximum = If( json?.PropertyT("maximum"), out var __jsonMaximum) ? (int)__jsonMaximum : Maximum;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNumber(this._version), "version" ,container.Add ); + AddIf( (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonBoolean(this._isEnabled), "isEnabled" ,container.Add ); + AddIf( (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNumber(this._minimum), "minimum" ,container.Add ); + AddIf( (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNumber(this._maximum), "maximum" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpoint.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpoint.PowerShell.cs new file mode 100644 index 000000000000..de45083e2d80 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpoint.PowerShell.cs @@ -0,0 +1,202 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// Endpoints accessed for a common purpose that the Kusto Service Environment requires outbound network access to. + /// + [System.ComponentModel.TypeConverter(typeof(OutboundNetworkDependenciesEndpointTypeConverter))] + public partial class OutboundNetworkDependenciesEndpoint + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OutboundNetworkDependenciesEndpoint(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OutboundNetworkDependenciesEndpoint(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OutboundNetworkDependenciesEndpoint(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OutboundNetworkDependenciesEndpointPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Etag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).Etag = (string) content.GetValueForProperty("Etag",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).Etag, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("Category")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).Category = (string) content.GetValueForProperty("Category",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).Category, global::System.Convert.ToString); + } + if (content.Contains("Endpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).Endpoint = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency[]) content.GetValueForProperty("Endpoint",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).Endpoint, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EndpointDependencyTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal OutboundNetworkDependenciesEndpoint(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OutboundNetworkDependenciesEndpointPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Etag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).Etag = (string) content.GetValueForProperty("Etag",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).Etag, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("Category")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).Category = (string) content.GetValueForProperty("Category",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).Category, global::System.Convert.ToString); + } + if (content.Contains("Endpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).Endpoint = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency[]) content.GetValueForProperty("Endpoint",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal)this).Endpoint, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EndpointDependencyTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Endpoints accessed for a common purpose that the Kusto Service Environment requires outbound network access to. + [System.ComponentModel.TypeConverter(typeof(OutboundNetworkDependenciesEndpointTypeConverter))] + public partial interface IOutboundNetworkDependenciesEndpoint + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpoint.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpoint.TypeConverter.cs new file mode 100644 index 000000000000..74b964c12792 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpoint.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OutboundNetworkDependenciesEndpointTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OutboundNetworkDependenciesEndpoint.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OutboundNetworkDependenciesEndpoint.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OutboundNetworkDependenciesEndpoint.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpoint.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpoint.cs new file mode 100644 index 000000000000..6d56869989be --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpoint.cs @@ -0,0 +1,165 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// Endpoints accessed for a common purpose that the Kusto Service Environment requires outbound network access to. + /// + public partial class OutboundNetworkDependenciesEndpoint : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(); + + /// + /// The type of service accessed by the Kusto Service Environment, e.g., Azure Storage, Azure SQL Database, and Azure Active + /// Directory. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string Category { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)Property).Category; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)Property).Category = value ?? null; } + + /// The endpoints that the Kusto Service Environment reaches the service at. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency[] Endpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)Property).Endpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)Property).Endpoint = value ?? null /* arrayOf */; } + + /// Backing field for property. + private string _etag; + + /// A unique read-only string that changes whenever the resource is updated. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Etag { get => this._etag; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for Etag + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal.Etag { get => this._etag; set { {_etag = value;} } } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OutboundNetworkDependenciesEndpointProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)Property).ProvisioningState = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointProperties _property; + + /// The outbound environment endpoint properties. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OutboundNetworkDependenciesEndpointProperties()); set => this._property = value; } + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)Property).ProvisioningState; } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public OutboundNetworkDependenciesEndpoint() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Endpoints accessed for a common purpose that the Kusto Service Environment requires outbound network access to. + public partial interface IOutboundNetworkDependenciesEndpoint : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource + { + /// + /// The type of service accessed by the Kusto Service Environment, e.g., Azure Storage, Azure SQL Database, and Azure Active + /// Directory. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of service accessed by the Kusto Service Environment, e.g., Azure Storage, Azure SQL Database, and Azure Active Directory.", + SerializedName = @"category", + PossibleTypes = new [] { typeof(string) })] + string Category { get; set; } + /// The endpoints that the Kusto Service Environment reaches the service at. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoints that the Kusto Service Environment reaches the service at.", + SerializedName = @"endpoints", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency[] Endpoint { get; set; } + /// A unique read-only string that changes whenever the resource is updated. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"A unique read-only string that changes whenever the resource is updated.", + SerializedName = @"etag", + PossibleTypes = new [] { typeof(string) })] + string Etag { get; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + + } + /// Endpoints accessed for a common purpose that the Kusto Service Environment requires outbound network access to. + internal partial interface IOutboundNetworkDependenciesEndpointInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal + { + /// + /// The type of service accessed by the Kusto Service Environment, e.g., Azure Storage, Azure SQL Database, and Azure Active + /// Directory. + /// + string Category { get; set; } + /// The endpoints that the Kusto Service Environment reaches the service at. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency[] Endpoint { get; set; } + /// A unique read-only string that changes whenever the resource is updated. + string Etag { get; set; } + /// The outbound environment endpoint properties. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointProperties Property { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpoint.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpoint.json.cs new file mode 100644 index 000000000000..4464d47513d6 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpoint.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// Endpoints accessed for a common purpose that the Kusto Service Environment requires outbound network access to. + /// + public partial class OutboundNetworkDependenciesEndpoint + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new OutboundNetworkDependenciesEndpoint(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal OutboundNetworkDependenciesEndpoint(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OutboundNetworkDependenciesEndpointProperties.FromJson(__jsonProperties) : Property;} + {_etag = If( json?.PropertyT("etag"), out var __jsonEtag) ? (string)__jsonEtag : (string)Etag;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._etag)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._etag.ToString()) : null, "etag" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointListResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointListResult.PowerShell.cs new file mode 100644 index 000000000000..99cf72b4d49d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointListResult.PowerShell.cs @@ -0,0 +1,153 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Collection of Outbound Environment Endpoints + [System.ComponentModel.TypeConverter(typeof(OutboundNetworkDependenciesEndpointListResultTypeConverter))] + public partial class OutboundNetworkDependenciesEndpointListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OutboundNetworkDependenciesEndpointListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OutboundNetworkDependenciesEndpointListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from + /// a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OutboundNetworkDependenciesEndpointListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OutboundNetworkDependenciesEndpointTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResultInternal)this).NextLink, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal OutboundNetworkDependenciesEndpointListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OutboundNetworkDependenciesEndpointTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResultInternal)this).NextLink, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of Outbound Environment Endpoints + [System.ComponentModel.TypeConverter(typeof(OutboundNetworkDependenciesEndpointListResultTypeConverter))] + public partial interface IOutboundNetworkDependenciesEndpointListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointListResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointListResult.TypeConverter.cs new file mode 100644 index 000000000000..490dd95d54ee --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointListResult.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OutboundNetworkDependenciesEndpointListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, + /// otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OutboundNetworkDependenciesEndpointListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OutboundNetworkDependenciesEndpointListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OutboundNetworkDependenciesEndpointListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointListResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointListResult.cs new file mode 100644 index 000000000000..3ac540f3faab --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointListResult.cs @@ -0,0 +1,73 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Collection of Outbound Environment Endpoints + public partial class OutboundNetworkDependenciesEndpointListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResultInternal + { + + /// Internal Acessors for NextLink + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResultInternal.NextLink { get => this._nextLink; set { {_nextLink = value;} } } + + /// Backing field for property. + private string _nextLink; + + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint[] _value; + + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint[] Value { get => this._value; set => this._value = value; } + + /// + /// Creates an new instance. + /// + public OutboundNetworkDependenciesEndpointListResult() + { + + } + } + /// Collection of Outbound Environment Endpoints + public partial interface IOutboundNetworkDependenciesEndpointListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Link to next page of resources. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Link to next page of resources.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; } + /// Collection of resources. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of resources.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint[] Value { get; set; } + + } + /// Collection of Outbound Environment Endpoints + internal partial interface IOutboundNetworkDependenciesEndpointListResultInternal + + { + /// Link to next page of resources. + string NextLink { get; set; } + /// Collection of resources. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointListResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointListResult.json.cs new file mode 100644 index 000000000000..37fa76bb8bf5 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointListResult.json.cs @@ -0,0 +1,122 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Collection of Outbound Environment Endpoints + public partial class OutboundNetworkDependenciesEndpointListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new OutboundNetworkDependenciesEndpointListResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal OutboundNetworkDependenciesEndpointListResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.OutboundNetworkDependenciesEndpoint.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._nextLink.ToString()) : null, "nextLink" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointProperties.PowerShell.cs new file mode 100644 index 000000000000..b9dd8532e97a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointProperties.PowerShell.cs @@ -0,0 +1,163 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// Endpoints accessed for a common purpose that the Kusto Service Environment requires outbound network access to. + /// + [System.ComponentModel.TypeConverter(typeof(OutboundNetworkDependenciesEndpointPropertiesTypeConverter))] + public partial class OutboundNetworkDependenciesEndpointProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OutboundNetworkDependenciesEndpointProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OutboundNetworkDependenciesEndpointProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from + /// a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OutboundNetworkDependenciesEndpointProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Category")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)this).Category = (string) content.GetValueForProperty("Category",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)this).Category, global::System.Convert.ToString); + } + if (content.Contains("Endpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)this).Endpoint = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency[]) content.GetValueForProperty("Endpoint",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)this).Endpoint, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EndpointDependencyTypeConverter.ConvertFrom)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal OutboundNetworkDependenciesEndpointProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Category")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)this).Category = (string) content.GetValueForProperty("Category",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)this).Category, global::System.Convert.ToString); + } + if (content.Contains("Endpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)this).Endpoint = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency[]) content.GetValueForProperty("Endpoint",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)this).Endpoint, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EndpointDependencyTypeConverter.ConvertFrom)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Endpoints accessed for a common purpose that the Kusto Service Environment requires outbound network access to. + [System.ComponentModel.TypeConverter(typeof(OutboundNetworkDependenciesEndpointPropertiesTypeConverter))] + public partial interface IOutboundNetworkDependenciesEndpointProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointProperties.TypeConverter.cs new file mode 100644 index 000000000000..4adc0eba4ff4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointProperties.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OutboundNetworkDependenciesEndpointPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, + /// otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OutboundNetworkDependenciesEndpointProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OutboundNetworkDependenciesEndpointProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OutboundNetworkDependenciesEndpointProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointProperties.cs new file mode 100644 index 000000000000..02aa45732838 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointProperties.cs @@ -0,0 +1,101 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// Endpoints accessed for a common purpose that the Kusto Service Environment requires outbound network access to. + /// + public partial class OutboundNetworkDependenciesEndpointProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal + { + + /// Backing field for property. + private string _category; + + /// + /// The type of service accessed by the Kusto Service Environment, e.g., Azure Storage, Azure SQL Database, and Azure Active + /// Directory. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Category { get => this._category; set => this._category = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency[] _endpoint; + + /// The endpoints that the Kusto Service Environment reaches the service at. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency[] Endpoint { get => this._endpoint; set => this._endpoint = value; } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? _provisioningState; + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// + /// Creates an new instance. + /// + public OutboundNetworkDependenciesEndpointProperties() + { + + } + } + /// Endpoints accessed for a common purpose that the Kusto Service Environment requires outbound network access to. + public partial interface IOutboundNetworkDependenciesEndpointProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// + /// The type of service accessed by the Kusto Service Environment, e.g., Azure Storage, Azure SQL Database, and Azure Active + /// Directory. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of service accessed by the Kusto Service Environment, e.g., Azure Storage, Azure SQL Database, and Azure Active Directory.", + SerializedName = @"category", + PossibleTypes = new [] { typeof(string) })] + string Category { get; set; } + /// The endpoints that the Kusto Service Environment reaches the service at. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The endpoints that the Kusto Service Environment reaches the service at.", + SerializedName = @"endpoints", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency[] Endpoint { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + + } + /// Endpoints accessed for a common purpose that the Kusto Service Environment requires outbound network access to. + internal partial interface IOutboundNetworkDependenciesEndpointPropertiesInternal + + { + /// + /// The type of service accessed by the Kusto Service Environment, e.g., Azure Storage, Azure SQL Database, and Azure Active + /// Directory. + /// + string Category { get; set; } + /// The endpoints that the Kusto Service Environment reaches the service at. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency[] Endpoint { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointProperties.json.cs new file mode 100644 index 000000000000..10627cf06924 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/OutboundNetworkDependenciesEndpointProperties.json.cs @@ -0,0 +1,126 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// + /// Endpoints accessed for a common purpose that the Kusto Service Environment requires outbound network access to. + /// + public partial class OutboundNetworkDependenciesEndpointProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpointProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new OutboundNetworkDependenciesEndpointProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal OutboundNetworkDependenciesEndpointProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_category = If( json?.PropertyT("category"), out var __jsonCategory) ? (string)__jsonCategory : (string)Category;} + {_endpoint = If( json?.PropertyT("endpoints"), out var __jsonEndpoints) ? If( __jsonEndpoints as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IEndpointDependency) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.EndpointDependency.FromJson(__u) )) ))() : null : Endpoint;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._category)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._category.ToString()) : null, "category" ,container.Add ); + if (null != this._endpoint) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._endpoint ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("endpoints",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnection.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnection.PowerShell.cs new file mode 100644 index 000000000000..4704ea579b0a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnection.PowerShell.cs @@ -0,0 +1,286 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A private endpoint connection + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionTypeConverter))] + public partial class PrivateEndpointConnection + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateEndpointConnection(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateEndpointConnection(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateEndpointConnection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnectionPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PrivateEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateEndpoint = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty) content.GetValueForProperty("PrivateEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateEndpoint, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointPropertyTypeConverter.ConvertFrom); + } + if (content.Contains("PrivateLinkServiceConnectionState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty) content.GetValueForProperty("PrivateLinkServiceConnectionState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkServiceConnectionStatePropertyTypeConverter.ConvertFrom); + } + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).GroupId, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).ProvisioningState = (string) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).ProvisioningState, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PrivateEndpointId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateEndpointId = (string) content.GetValueForProperty("PrivateEndpointId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateEndpointId, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateStatus")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateStatus = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateStatus",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateStatus, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateDescription = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateDescription",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateDescription, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateActionsRequired")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateActionsRequired = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateActionsRequired, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PrivateEndpointConnection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnectionPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PrivateEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateEndpoint = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty) content.GetValueForProperty("PrivateEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateEndpoint, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointPropertyTypeConverter.ConvertFrom); + } + if (content.Contains("PrivateLinkServiceConnectionState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty) content.GetValueForProperty("PrivateLinkServiceConnectionState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkServiceConnectionStatePropertyTypeConverter.ConvertFrom); + } + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).GroupId, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).ProvisioningState = (string) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).ProvisioningState, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PrivateEndpointId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateEndpointId = (string) content.GetValueForProperty("PrivateEndpointId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateEndpointId, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateStatus")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateStatus = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateStatus",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateStatus, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateDescription = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateDescription",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateDescription, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateActionsRequired")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateActionsRequired = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateActionsRequired, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A private endpoint connection + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionTypeConverter))] + public partial interface IPrivateEndpointConnection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnection.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnection.TypeConverter.cs new file mode 100644 index 000000000000..52a1bc0d1c88 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnection.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateEndpointConnectionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateEndpointConnection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateEndpointConnection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateEndpointConnection.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnection.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnection.cs new file mode 100644 index 000000000000..d92755dc3bb2 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnection.cs @@ -0,0 +1,291 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A private endpoint connection + public partial class PrivateEndpointConnection : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(); + + /// Group id of the private endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string GroupId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).GroupId; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for GroupId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal.GroupId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).GroupId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).GroupId = value; } + + /// Internal Acessors for PrivateEndpoint + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal.PrivateEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateEndpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateEndpoint = value; } + + /// Internal Acessors for PrivateEndpointId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal.PrivateEndpointId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateEndpointId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateEndpointId = value; } + + /// Internal Acessors for PrivateLinkServiceConnectionState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal.PrivateLinkServiceConnectionState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionState; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionState = value; } + + /// Internal Acessors for PrivateLinkServiceConnectionStateActionsRequired + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal.PrivateLinkServiceConnectionStateActionsRequired { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateActionsRequired; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateActionsRequired = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnectionProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; } + + /// Resource id of the private endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string PrivateEndpointId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateEndpointId; } + + /// Any action that is required beyond basic workflow (approve/ reject/ disconnect) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string PrivateLinkServiceConnectionStateActionsRequired { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateActionsRequired; } + + /// The private link service connection description. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string PrivateLinkServiceConnectionStateDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateDescription; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateDescription = value ?? null; } + + /// The private link service connection status. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string PrivateLinkServiceConnectionStateStatus { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateStatus; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateStatus = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionProperties _property; + + /// Resource properties. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnectionProperties()); set => this._property = value; } + + /// Provisioning state of the private endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)Property).ProvisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData _systemData; + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public PrivateEndpointConnection() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// A private endpoint connection + public partial interface IPrivateEndpointConnection : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource + { + /// Group id of the private endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Group id of the private endpoint.", + SerializedName = @"groupId", + PossibleTypes = new [] { typeof(string) })] + string GroupId { get; } + /// Resource id of the private endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Resource id of the private endpoint.", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string PrivateEndpointId { get; } + /// Any action that is required beyond basic workflow (approve/ reject/ disconnect) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Any action that is required beyond basic workflow (approve/ reject/ disconnect)", + SerializedName = @"actionsRequired", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkServiceConnectionStateActionsRequired { get; } + /// The private link service connection description. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The private link service connection description.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkServiceConnectionStateDescription { get; set; } + /// The private link service connection status. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The private link service connection status.", + SerializedName = @"status", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkServiceConnectionStateStatus { get; set; } + /// Provisioning state of the private endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the private endpoint.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(string) })] + string ProvisioningState { get; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource creation (UTC).", + SerializedName = @"createdAt", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity that created the resource.", + SerializedName = @"createdBy", + PossibleTypes = new [] { typeof(string) })] + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource last modification (UTC)", + SerializedName = @"lastModifiedAt", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? SystemDataLastModifiedAt { get; set; } + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity that last modified the resource.", + SerializedName = @"lastModifiedBy", + PossibleTypes = new [] { typeof(string) })] + string SystemDataLastModifiedBy { get; set; } + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that last modified the resource.", + SerializedName = @"lastModifiedByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } + /// A private endpoint connection + internal partial interface IPrivateEndpointConnectionInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal + { + /// Group id of the private endpoint. + string GroupId { get; set; } + /// Private endpoint which the connection belongs to. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty PrivateEndpoint { get; set; } + /// Resource id of the private endpoint. + string PrivateEndpointId { get; set; } + /// Connection State of the Private Endpoint Connection. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty PrivateLinkServiceConnectionState { get; set; } + /// Any action that is required beyond basic workflow (approve/ reject/ disconnect) + string PrivateLinkServiceConnectionStateActionsRequired { get; set; } + /// The private link service connection description. + string PrivateLinkServiceConnectionStateDescription { get; set; } + /// The private link service connection status. + string PrivateLinkServiceConnectionStateStatus { get; set; } + /// Resource properties. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionProperties Property { get; set; } + /// Provisioning state of the private endpoint. + string ProvisioningState { get; set; } + /// Metadata pertaining to creation and last modification of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData SystemData { get; set; } + /// The timestamp of resource creation (UTC). + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + global::System.DateTime? SystemDataLastModifiedAt { get; set; } + /// The identity that last modified the resource. + string SystemDataLastModifiedBy { get; set; } + /// The type of identity that last modified the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnection.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnection.json.cs new file mode 100644 index 000000000000..f3b21834a6bc --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnection.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A private endpoint connection + public partial class PrivateEndpointConnection + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new PrivateEndpointConnection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateEndpointConnection(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnectionProperties.FromJson(__jsonProperties) : Property;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionListResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionListResult.PowerShell.cs new file mode 100644 index 000000000000..9fcf81de9453 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionListResult.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A list of private endpoint connections + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionListResultTypeConverter))] + public partial class PrivateEndpointConnectionListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateEndpointConnectionListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateEndpointConnectionListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateEndpointConnectionListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PrivateEndpointConnectionListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A list of private endpoint connections + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionListResultTypeConverter))] + public partial interface IPrivateEndpointConnectionListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionListResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionListResult.TypeConverter.cs new file mode 100644 index 000000000000..4bb8388a0065 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionListResult.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateEndpointConnectionListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateEndpointConnectionListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateEndpointConnectionListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateEndpointConnectionListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionListResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionListResult.cs new file mode 100644 index 000000000000..8bed963b58aa --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionListResult.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A list of private endpoint connections + public partial class PrivateEndpointConnectionListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionListResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionListResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[] _value; + + /// Array of private endpoint connections + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public PrivateEndpointConnectionListResult() + { + + } + } + /// A list of private endpoint connections + public partial interface IPrivateEndpointConnectionListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Array of private endpoint connections + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Array of private endpoint connections", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[] Value { get; set; } + + } + /// A list of private endpoint connections + internal partial interface IPrivateEndpointConnectionListResultInternal + + { + /// Array of private endpoint connections + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionListResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionListResult.json.cs new file mode 100644 index 000000000000..e0a214e31392 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionListResult.json.cs @@ -0,0 +1,115 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A list of private endpoint connections + public partial class PrivateEndpointConnectionListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new PrivateEndpointConnectionListResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateEndpointConnectionListResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnection.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionProperties.PowerShell.cs new file mode 100644 index 000000000000..0c01653522f7 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionProperties.PowerShell.cs @@ -0,0 +1,200 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Properties of a private endpoint connection. + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionPropertiesTypeConverter))] + public partial class PrivateEndpointConnectionProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateEndpointConnectionProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateEndpointConnectionProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateEndpointConnectionProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrivateEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpoint = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty) content.GetValueForProperty("PrivateEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpoint, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointPropertyTypeConverter.ConvertFrom); + } + if (content.Contains("PrivateLinkServiceConnectionState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty) content.GetValueForProperty("PrivateLinkServiceConnectionState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkServiceConnectionStatePropertyTypeConverter.ConvertFrom); + } + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).GroupId, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).ProvisioningState = (string) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).ProvisioningState, global::System.Convert.ToString); + } + if (content.Contains("PrivateEndpointId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpointId = (string) content.GetValueForProperty("PrivateEndpointId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpointId, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateStatus")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateStatus = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateStatus",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateStatus, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateDescription = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateDescription",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateDescription, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateActionsRequired")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateActionsRequired = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateActionsRequired, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PrivateEndpointConnectionProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrivateEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpoint = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty) content.GetValueForProperty("PrivateEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpoint, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointPropertyTypeConverter.ConvertFrom); + } + if (content.Contains("PrivateLinkServiceConnectionState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty) content.GetValueForProperty("PrivateLinkServiceConnectionState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkServiceConnectionStatePropertyTypeConverter.ConvertFrom); + } + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).GroupId, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).ProvisioningState = (string) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).ProvisioningState, global::System.Convert.ToString); + } + if (content.Contains("PrivateEndpointId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpointId = (string) content.GetValueForProperty("PrivateEndpointId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpointId, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateStatus")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateStatus = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateStatus",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateStatus, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateDescription = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateDescription",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateDescription, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateActionsRequired")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateActionsRequired = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateActionsRequired, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of a private endpoint connection. + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionPropertiesTypeConverter))] + public partial interface IPrivateEndpointConnectionProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionProperties.TypeConverter.cs new file mode 100644 index 000000000000..560e7250024d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionProperties.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateEndpointConnectionPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateEndpointConnectionProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateEndpointConnectionProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateEndpointConnectionProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionProperties.cs new file mode 100644 index 000000000000..9afa7ea3e672 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionProperties.cs @@ -0,0 +1,160 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Properties of a private endpoint connection. + public partial class PrivateEndpointConnectionProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal + { + + /// Backing field for property. + private string _groupId; + + /// Group id of the private endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string GroupId { get => this._groupId; } + + /// Internal Acessors for GroupId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal.GroupId { get => this._groupId; set { {_groupId = value;} } } + + /// Internal Acessors for PrivateEndpoint + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal.PrivateEndpoint { get => (this._privateEndpoint = this._privateEndpoint ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointProperty()); set { {_privateEndpoint = value;} } } + + /// Internal Acessors for PrivateEndpointId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal.PrivateEndpointId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointPropertyInternal)PrivateEndpoint).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointPropertyInternal)PrivateEndpoint).Id = value; } + + /// Internal Acessors for PrivateLinkServiceConnectionState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal.PrivateLinkServiceConnectionState { get => (this._privateLinkServiceConnectionState = this._privateLinkServiceConnectionState ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkServiceConnectionStateProperty()); set { {_privateLinkServiceConnectionState = value;} } } + + /// Internal Acessors for PrivateLinkServiceConnectionStateActionsRequired + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal.PrivateLinkServiceConnectionStateActionsRequired { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)PrivateLinkServiceConnectionState).ActionsRequired; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)PrivateLinkServiceConnectionState).ActionsRequired = value; } + + /// Internal Acessors for ProvisioningState + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty _privateEndpoint; + + /// Private endpoint which the connection belongs to. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty PrivateEndpoint { get => (this._privateEndpoint = this._privateEndpoint ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointProperty()); } + + /// Resource id of the private endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string PrivateEndpointId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointPropertyInternal)PrivateEndpoint).Id; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty _privateLinkServiceConnectionState; + + /// Connection State of the Private Endpoint Connection. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty PrivateLinkServiceConnectionState { get => (this._privateLinkServiceConnectionState = this._privateLinkServiceConnectionState ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkServiceConnectionStateProperty()); set => this._privateLinkServiceConnectionState = value; } + + /// Any action that is required beyond basic workflow (approve/ reject/ disconnect) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string PrivateLinkServiceConnectionStateActionsRequired { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)PrivateLinkServiceConnectionState).ActionsRequired; } + + /// The private link service connection description. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string PrivateLinkServiceConnectionStateDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)PrivateLinkServiceConnectionState).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)PrivateLinkServiceConnectionState).Description = value ?? null; } + + /// The private link service connection status. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string PrivateLinkServiceConnectionStateStatus { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)PrivateLinkServiceConnectionState).Status; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)PrivateLinkServiceConnectionState).Status = value ?? null; } + + /// Backing field for property. + private string _provisioningState; + + /// Provisioning state of the private endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ProvisioningState { get => this._provisioningState; } + + /// Creates an new instance. + public PrivateEndpointConnectionProperties() + { + + } + } + /// Properties of a private endpoint connection. + public partial interface IPrivateEndpointConnectionProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Group id of the private endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Group id of the private endpoint.", + SerializedName = @"groupId", + PossibleTypes = new [] { typeof(string) })] + string GroupId { get; } + /// Resource id of the private endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Resource id of the private endpoint.", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string PrivateEndpointId { get; } + /// Any action that is required beyond basic workflow (approve/ reject/ disconnect) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Any action that is required beyond basic workflow (approve/ reject/ disconnect)", + SerializedName = @"actionsRequired", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkServiceConnectionStateActionsRequired { get; } + /// The private link service connection description. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The private link service connection description.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkServiceConnectionStateDescription { get; set; } + /// The private link service connection status. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The private link service connection status.", + SerializedName = @"status", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkServiceConnectionStateStatus { get; set; } + /// Provisioning state of the private endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the private endpoint.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(string) })] + string ProvisioningState { get; } + + } + /// Properties of a private endpoint connection. + internal partial interface IPrivateEndpointConnectionPropertiesInternal + + { + /// Group id of the private endpoint. + string GroupId { get; set; } + /// Private endpoint which the connection belongs to. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty PrivateEndpoint { get; set; } + /// Resource id of the private endpoint. + string PrivateEndpointId { get; set; } + /// Connection State of the Private Endpoint Connection. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty PrivateLinkServiceConnectionState { get; set; } + /// Any action that is required beyond basic workflow (approve/ reject/ disconnect) + string PrivateLinkServiceConnectionStateActionsRequired { get; set; } + /// The private link service connection description. + string PrivateLinkServiceConnectionStateDescription { get; set; } + /// The private link service connection status. + string PrivateLinkServiceConnectionStateStatus { get; set; } + /// Provisioning state of the private endpoint. + string ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionProperties.json.cs new file mode 100644 index 000000000000..c585e8f2d646 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointConnectionProperties.json.cs @@ -0,0 +1,122 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Properties of a private endpoint connection. + public partial class PrivateEndpointConnectionProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnectionProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new PrivateEndpointConnectionProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateEndpointConnectionProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_privateEndpoint = If( json?.PropertyT("privateEndpoint"), out var __jsonPrivateEndpoint) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointProperty.FromJson(__jsonPrivateEndpoint) : PrivateEndpoint;} + {_privateLinkServiceConnectionState = If( json?.PropertyT("privateLinkServiceConnectionState"), out var __jsonPrivateLinkServiceConnectionState) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkServiceConnectionStateProperty.FromJson(__jsonPrivateLinkServiceConnectionState) : PrivateLinkServiceConnectionState;} + {_groupId = If( json?.PropertyT("groupId"), out var __jsonGroupId) ? (string)__jsonGroupId : (string)GroupId;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._privateEndpoint ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._privateEndpoint.ToJson(null,serializationMode) : null, "privateEndpoint" ,container.Add ); + } + AddIf( null != this._privateLinkServiceConnectionState ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._privateLinkServiceConnectionState.ToJson(null,serializationMode) : null, "privateLinkServiceConnectionState" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._groupId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._groupId.ToString()) : null, "groupId" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointProperty.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointProperty.PowerShell.cs new file mode 100644 index 000000000000..c6b53599d9b2 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointProperty.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Private endpoint which the connection belongs to. + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointPropertyTypeConverter))] + public partial class PrivateEndpointProperty + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateEndpointProperty(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateEndpointProperty(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateEndpointProperty(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointPropertyInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointPropertyInternal)this).Id, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PrivateEndpointProperty(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointPropertyInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointPropertyInternal)this).Id, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Private endpoint which the connection belongs to. + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointPropertyTypeConverter))] + public partial interface IPrivateEndpointProperty + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointProperty.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointProperty.TypeConverter.cs new file mode 100644 index 000000000000..9f2feea1a17b --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointProperty.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateEndpointPropertyTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateEndpointProperty.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateEndpointProperty.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateEndpointProperty.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointProperty.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointProperty.cs new file mode 100644 index 000000000000..0625838e727d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointProperty.cs @@ -0,0 +1,54 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Private endpoint which the connection belongs to. + public partial class PrivateEndpointProperty : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointPropertyInternal + { + + /// Backing field for property. + private string _id; + + /// Resource id of the private endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Id { get => this._id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointPropertyInternal.Id { get => this._id; set { {_id = value;} } } + + /// Creates an new instance. + public PrivateEndpointProperty() + { + + } + } + /// Private endpoint which the connection belongs to. + public partial interface IPrivateEndpointProperty : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Resource id of the private endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Resource id of the private endpoint.", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; } + + } + /// Private endpoint which the connection belongs to. + internal partial interface IPrivateEndpointPropertyInternal + + { + /// Resource id of the private endpoint. + string Id { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointProperty.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointProperty.json.cs new file mode 100644 index 000000000000..5d8a8e5b7f66 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateEndpointProperty.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Private endpoint which the connection belongs to. + public partial class PrivateEndpointProperty + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointProperty FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new PrivateEndpointProperty(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateEndpointProperty(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_id = If( json?.PropertyT("id"), out var __jsonId) ? (string)__jsonId : (string)Id;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._id.ToString()) : null, "id" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResource.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResource.PowerShell.cs new file mode 100644 index 000000000000..cca9534d4790 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResource.PowerShell.cs @@ -0,0 +1,246 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A private link resource + [System.ComponentModel.TypeConverter(typeof(PrivateLinkResourceTypeConverter))] + public partial class PrivateLinkResource + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateLinkResource(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateLinkResource(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateLinkResource(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkResourcePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).GroupId, global::System.Convert.ToString); + } + if (content.Contains("RequiredMember")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).RequiredMember = (string[]) content.GetValueForProperty("RequiredMember",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).RequiredMember, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RequiredZoneName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).RequiredZoneName = (string[]) content.GetValueForProperty("RequiredZoneName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).RequiredZoneName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PrivateLinkResource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkResourcePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).GroupId, global::System.Convert.ToString); + } + if (content.Contains("RequiredMember")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).RequiredMember = (string[]) content.GetValueForProperty("RequiredMember",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).RequiredMember, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RequiredZoneName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).RequiredZoneName = (string[]) content.GetValueForProperty("RequiredZoneName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).RequiredZoneName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A private link resource + [System.ComponentModel.TypeConverter(typeof(PrivateLinkResourceTypeConverter))] + public partial interface IPrivateLinkResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResource.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResource.TypeConverter.cs new file mode 100644 index 000000000000..25ce08d7b63c --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResource.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateLinkResourceTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateLinkResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateLinkResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateLinkResource.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResource.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResource.cs new file mode 100644 index 000000000000..76e3b21d383e --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResource.cs @@ -0,0 +1,236 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A private link resource + public partial class PrivateLinkResource : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(); + + /// The private link resource group id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string GroupId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)Property).GroupId; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for GroupId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal.GroupId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)Property).GroupId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)Property).GroupId = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkResourceProperties()); set { {_property = value;} } } + + /// Internal Acessors for RequiredMember + string[] Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal.RequiredMember { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)Property).RequiredMember; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)Property).RequiredMember = value; } + + /// Internal Acessors for RequiredZoneName + string[] Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal.RequiredZoneName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)Property).RequiredZoneName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)Property).RequiredZoneName = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceProperties _property; + + /// Resource properties. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkResourceProperties()); set => this._property = value; } + + /// The private link resource required member names. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] RequiredMember { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)Property).RequiredMember; } + + /// The private link resource required zone names. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string[] RequiredZoneName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)Property).RequiredZoneName; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData _systemData; + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public PrivateLinkResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// A private link resource + public partial interface IPrivateLinkResource : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource + { + /// The private link resource group id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The private link resource group id.", + SerializedName = @"groupId", + PossibleTypes = new [] { typeof(string) })] + string GroupId { get; } + /// The private link resource required member names. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The private link resource required member names.", + SerializedName = @"requiredMembers", + PossibleTypes = new [] { typeof(string) })] + string[] RequiredMember { get; } + /// The private link resource required zone names. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The private link resource required zone names.", + SerializedName = @"requiredZoneNames", + PossibleTypes = new [] { typeof(string) })] + string[] RequiredZoneName { get; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource creation (UTC).", + SerializedName = @"createdAt", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity that created the resource.", + SerializedName = @"createdBy", + PossibleTypes = new [] { typeof(string) })] + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource last modification (UTC)", + SerializedName = @"lastModifiedAt", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? SystemDataLastModifiedAt { get; set; } + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity that last modified the resource.", + SerializedName = @"lastModifiedBy", + PossibleTypes = new [] { typeof(string) })] + string SystemDataLastModifiedBy { get; set; } + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that last modified the resource.", + SerializedName = @"lastModifiedByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } + /// A private link resource + internal partial interface IPrivateLinkResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal + { + /// The private link resource group id. + string GroupId { get; set; } + /// Resource properties. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceProperties Property { get; set; } + /// The private link resource required member names. + string[] RequiredMember { get; set; } + /// The private link resource required zone names. + string[] RequiredZoneName { get; set; } + /// Metadata pertaining to creation and last modification of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData SystemData { get; set; } + /// The timestamp of resource creation (UTC). + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + global::System.DateTime? SystemDataLastModifiedAt { get; set; } + /// The identity that last modified the resource. + string SystemDataLastModifiedBy { get; set; } + /// The type of identity that last modified the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResource.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResource.json.cs new file mode 100644 index 000000000000..8457338c0e26 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResource.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A private link resource + public partial class PrivateLinkResource + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new PrivateLinkResource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateLinkResource(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkResourceProperties.FromJson(__jsonProperties) : Property;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceListResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceListResult.PowerShell.cs new file mode 100644 index 000000000000..e64a54bb9b0f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceListResult.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A list of private link resources + [System.ComponentModel.TypeConverter(typeof(PrivateLinkResourceListResultTypeConverter))] + public partial class PrivateLinkResourceListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateLinkResourceListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateLinkResourceListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateLinkResourceListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkResourceTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PrivateLinkResourceListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkResourceTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A list of private link resources + [System.ComponentModel.TypeConverter(typeof(PrivateLinkResourceListResultTypeConverter))] + public partial interface IPrivateLinkResourceListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceListResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceListResult.TypeConverter.cs new file mode 100644 index 000000000000..d0bde44c79a7 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateLinkResourceListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateLinkResourceListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateLinkResourceListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateLinkResourceListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceListResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceListResult.cs new file mode 100644 index 000000000000..0df3d9424d35 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceListResult.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A list of private link resources + public partial class PrivateLinkResourceListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceListResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceListResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource[] _value; + + /// Array of private link resources + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public PrivateLinkResourceListResult() + { + + } + } + /// A list of private link resources + public partial interface IPrivateLinkResourceListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Array of private link resources + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Array of private link resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource[] Value { get; set; } + + } + /// A list of private link resources + internal partial interface IPrivateLinkResourceListResultInternal + + { + /// Array of private link resources + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceListResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceListResult.json.cs new file mode 100644 index 000000000000..04894d1944f5 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceListResult.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A list of private link resources + public partial class PrivateLinkResourceListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new PrivateLinkResourceListResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateLinkResourceListResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateLinkResource.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceProperties.PowerShell.cs new file mode 100644 index 000000000000..688318e10043 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceProperties.PowerShell.cs @@ -0,0 +1,160 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Properties of a private link resource. + [System.ComponentModel.TypeConverter(typeof(PrivateLinkResourcePropertiesTypeConverter))] + public partial class PrivateLinkResourceProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateLinkResourceProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateLinkResourceProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateLinkResourceProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)this).GroupId, global::System.Convert.ToString); + } + if (content.Contains("RequiredMember")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)this).RequiredMember = (string[]) content.GetValueForProperty("RequiredMember",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)this).RequiredMember, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RequiredZoneName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)this).RequiredZoneName = (string[]) content.GetValueForProperty("RequiredZoneName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)this).RequiredZoneName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PrivateLinkResourceProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)this).GroupId, global::System.Convert.ToString); + } + if (content.Contains("RequiredMember")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)this).RequiredMember = (string[]) content.GetValueForProperty("RequiredMember",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)this).RequiredMember, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RequiredZoneName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)this).RequiredZoneName = (string[]) content.GetValueForProperty("RequiredZoneName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal)this).RequiredZoneName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of a private link resource. + [System.ComponentModel.TypeConverter(typeof(PrivateLinkResourcePropertiesTypeConverter))] + public partial interface IPrivateLinkResourceProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceProperties.TypeConverter.cs new file mode 100644 index 000000000000..8e85cf841d66 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateLinkResourcePropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateLinkResourceProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateLinkResourceProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateLinkResourceProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceProperties.cs new file mode 100644 index 000000000000..4e7a707d50b2 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceProperties.cs @@ -0,0 +1,94 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Properties of a private link resource. + public partial class PrivateLinkResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal + { + + /// Backing field for property. + private string _groupId; + + /// The private link resource group id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string GroupId { get => this._groupId; } + + /// Internal Acessors for GroupId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal.GroupId { get => this._groupId; set { {_groupId = value;} } } + + /// Internal Acessors for RequiredMember + string[] Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal.RequiredMember { get => this._requiredMember; set { {_requiredMember = value;} } } + + /// Internal Acessors for RequiredZoneName + string[] Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourcePropertiesInternal.RequiredZoneName { get => this._requiredZoneName; set { {_requiredZoneName = value;} } } + + /// Backing field for property. + private string[] _requiredMember; + + /// The private link resource required member names. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string[] RequiredMember { get => this._requiredMember; } + + /// Backing field for property. + private string[] _requiredZoneName; + + /// The private link resource required zone names. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string[] RequiredZoneName { get => this._requiredZoneName; } + + /// Creates an new instance. + public PrivateLinkResourceProperties() + { + + } + } + /// Properties of a private link resource. + public partial interface IPrivateLinkResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The private link resource group id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The private link resource group id.", + SerializedName = @"groupId", + PossibleTypes = new [] { typeof(string) })] + string GroupId { get; } + /// The private link resource required member names. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The private link resource required member names.", + SerializedName = @"requiredMembers", + PossibleTypes = new [] { typeof(string) })] + string[] RequiredMember { get; } + /// The private link resource required zone names. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The private link resource required zone names.", + SerializedName = @"requiredZoneNames", + PossibleTypes = new [] { typeof(string) })] + string[] RequiredZoneName { get; } + + } + /// Properties of a private link resource. + internal partial interface IPrivateLinkResourcePropertiesInternal + + { + /// The private link resource group id. + string GroupId { get; set; } + /// The private link resource required member names. + string[] RequiredMember { get; set; } + /// The private link resource required zone names. + string[] RequiredZoneName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceProperties.json.cs new file mode 100644 index 000000000000..51ec725ae57b --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkResourceProperties.json.cs @@ -0,0 +1,135 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Properties of a private link resource. + public partial class PrivateLinkResourceProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResourceProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new PrivateLinkResourceProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateLinkResourceProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_groupId = If( json?.PropertyT("groupId"), out var __jsonGroupId) ? (string)__jsonGroupId : (string)GroupId;} + {_requiredMember = If( json?.PropertyT("requiredMembers"), out var __jsonRequiredMembers) ? If( __jsonRequiredMembers as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(string) (__u is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : RequiredMember;} + {_requiredZoneName = If( json?.PropertyT("requiredZoneNames"), out var __jsonRequiredZoneNames) ? If( __jsonRequiredZoneNames as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __q) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__q, (__p)=>(string) (__p is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : RequiredZoneName;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._groupId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._groupId.ToString()) : null, "groupId" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._requiredMember) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._requiredMember ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("requiredMembers",__w); + } + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._requiredZoneName) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __s in this._requiredZoneName ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("requiredZoneNames",__r); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkServiceConnectionStateProperty.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkServiceConnectionStateProperty.PowerShell.cs new file mode 100644 index 000000000000..b1de1746dfa4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkServiceConnectionStateProperty.PowerShell.cs @@ -0,0 +1,161 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Connection State of the Private Endpoint Connection. + [System.ComponentModel.TypeConverter(typeof(PrivateLinkServiceConnectionStatePropertyTypeConverter))] + public partial class PrivateLinkServiceConnectionStateProperty + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateLinkServiceConnectionStateProperty(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateLinkServiceConnectionStateProperty(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateLinkServiceConnectionStateProperty(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)this).Status, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("ActionsRequired")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)this).ActionsRequired = (string) content.GetValueForProperty("ActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)this).ActionsRequired, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PrivateLinkServiceConnectionStateProperty(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)this).Status, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("ActionsRequired")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)this).ActionsRequired = (string) content.GetValueForProperty("ActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal)this).ActionsRequired, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Connection State of the Private Endpoint Connection. + [System.ComponentModel.TypeConverter(typeof(PrivateLinkServiceConnectionStatePropertyTypeConverter))] + public partial interface IPrivateLinkServiceConnectionStateProperty + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkServiceConnectionStateProperty.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkServiceConnectionStateProperty.TypeConverter.cs new file mode 100644 index 000000000000..87f3e1ff4c69 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkServiceConnectionStateProperty.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateLinkServiceConnectionStatePropertyTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateLinkServiceConnectionStateProperty.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateLinkServiceConnectionStateProperty.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateLinkServiceConnectionStateProperty.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkServiceConnectionStateProperty.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkServiceConnectionStateProperty.cs new file mode 100644 index 000000000000..d6549d5c1b25 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkServiceConnectionStateProperty.cs @@ -0,0 +1,90 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Connection State of the Private Endpoint Connection. + public partial class PrivateLinkServiceConnectionStateProperty : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal + { + + /// Backing field for property. + private string _actionsRequired; + + /// Any action that is required beyond basic workflow (approve/ reject/ disconnect) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ActionsRequired { get => this._actionsRequired; } + + /// Backing field for property. + private string _description; + + /// The private link service connection description. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Internal Acessors for ActionsRequired + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStatePropertyInternal.ActionsRequired { get => this._actionsRequired; set { {_actionsRequired = value;} } } + + /// Backing field for property. + private string _status; + + /// The private link service connection status. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Status { get => this._status; set => this._status = value; } + + /// + /// Creates an new instance. + /// + public PrivateLinkServiceConnectionStateProperty() + { + + } + } + /// Connection State of the Private Endpoint Connection. + public partial interface IPrivateLinkServiceConnectionStateProperty : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Any action that is required beyond basic workflow (approve/ reject/ disconnect) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Any action that is required beyond basic workflow (approve/ reject/ disconnect)", + SerializedName = @"actionsRequired", + PossibleTypes = new [] { typeof(string) })] + string ActionsRequired { get; } + /// The private link service connection description. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The private link service connection description.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// The private link service connection status. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The private link service connection status.", + SerializedName = @"status", + PossibleTypes = new [] { typeof(string) })] + string Status { get; set; } + + } + /// Connection State of the Private Endpoint Connection. + internal partial interface IPrivateLinkServiceConnectionStatePropertyInternal + + { + /// Any action that is required beyond basic workflow (approve/ reject/ disconnect) + string ActionsRequired { get; set; } + /// The private link service connection description. + string Description { get; set; } + /// The private link service connection status. + string Status { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkServiceConnectionStateProperty.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkServiceConnectionStateProperty.json.cs new file mode 100644 index 000000000000..83f635016b84 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/PrivateLinkServiceConnectionStateProperty.json.cs @@ -0,0 +1,115 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Connection State of the Private Endpoint Connection. + public partial class PrivateLinkServiceConnectionStateProperty + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkServiceConnectionStateProperty FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new PrivateLinkServiceConnectionStateProperty(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateLinkServiceConnectionStateProperty(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_status = If( json?.PropertyT("status"), out var __jsonStatus) ? (string)__jsonStatus : (string)Status;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_actionsRequired = If( json?.PropertyT("actionsRequired"), out var __jsonActionsRequired) ? (string)__jsonActionsRequired : (string)ActionsRequired;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._status)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._status.ToString()) : null, "status" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._actionsRequired)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._actionsRequired.ToString()) : null, "actionsRequired" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabase.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabase.PowerShell.cs new file mode 100644 index 000000000000..66345e547581 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabase.PowerShell.cs @@ -0,0 +1,254 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing a read only following database. + [System.ComponentModel.TypeConverter(typeof(ReadOnlyFollowingDatabaseTypeConverter))] + public partial class ReadOnlyFollowingDatabase + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabase DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ReadOnlyFollowingDatabase(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabase DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ReadOnlyFollowingDatabase(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabase FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ReadOnlyFollowingDatabase(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadOnlyFollowingDatabasePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind.CreateFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("Statistics")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).Statistics = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics) content.GetValueForProperty("Statistics",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).Statistics, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseStatisticsTypeConverter.ConvertFrom); + } + if (content.Contains("SoftDeletePeriod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).SoftDeletePeriod = (global::System.TimeSpan?) content.GetValueForProperty("SoftDeletePeriod",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).SoftDeletePeriod, (v) => v is global::System.TimeSpan _v ? _v : global::System.Xml.XmlConvert.ToTimeSpan( v.ToString() )); + } + if (content.Contains("HotCachePeriod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).HotCachePeriod = (global::System.TimeSpan?) content.GetValueForProperty("HotCachePeriod",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).HotCachePeriod, (v) => v is global::System.TimeSpan _v ? _v : global::System.Xml.XmlConvert.ToTimeSpan( v.ToString() )); + } + if (content.Contains("LeaderClusterResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).LeaderClusterResourceId = (string) content.GetValueForProperty("LeaderClusterResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).LeaderClusterResourceId, global::System.Convert.ToString); + } + if (content.Contains("AttachedDatabaseConfigurationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).AttachedDatabaseConfigurationName = (string) content.GetValueForProperty("AttachedDatabaseConfigurationName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).AttachedDatabaseConfigurationName, global::System.Convert.ToString); + } + if (content.Contains("PrincipalsModificationKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).PrincipalsModificationKind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind?) content.GetValueForProperty("PrincipalsModificationKind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).PrincipalsModificationKind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind.CreateFrom); + } + if (content.Contains("StatisticsSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).StatisticsSize = (float?) content.GetValueForProperty("StatisticsSize",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).StatisticsSize, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ReadOnlyFollowingDatabase(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadOnlyFollowingDatabasePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind.CreateFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("Statistics")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).Statistics = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics) content.GetValueForProperty("Statistics",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).Statistics, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseStatisticsTypeConverter.ConvertFrom); + } + if (content.Contains("SoftDeletePeriod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).SoftDeletePeriod = (global::System.TimeSpan?) content.GetValueForProperty("SoftDeletePeriod",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).SoftDeletePeriod, (v) => v is global::System.TimeSpan _v ? _v : global::System.Xml.XmlConvert.ToTimeSpan( v.ToString() )); + } + if (content.Contains("HotCachePeriod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).HotCachePeriod = (global::System.TimeSpan?) content.GetValueForProperty("HotCachePeriod",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).HotCachePeriod, (v) => v is global::System.TimeSpan _v ? _v : global::System.Xml.XmlConvert.ToTimeSpan( v.ToString() )); + } + if (content.Contains("LeaderClusterResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).LeaderClusterResourceId = (string) content.GetValueForProperty("LeaderClusterResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).LeaderClusterResourceId, global::System.Convert.ToString); + } + if (content.Contains("AttachedDatabaseConfigurationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).AttachedDatabaseConfigurationName = (string) content.GetValueForProperty("AttachedDatabaseConfigurationName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).AttachedDatabaseConfigurationName, global::System.Convert.ToString); + } + if (content.Contains("PrincipalsModificationKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).PrincipalsModificationKind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind?) content.GetValueForProperty("PrincipalsModificationKind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).PrincipalsModificationKind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind.CreateFrom); + } + if (content.Contains("StatisticsSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).StatisticsSize = (float?) content.GetValueForProperty("StatisticsSize",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal)this).StatisticsSize, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing a read only following database. + [System.ComponentModel.TypeConverter(typeof(ReadOnlyFollowingDatabaseTypeConverter))] + public partial interface IReadOnlyFollowingDatabase + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabase.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabase.TypeConverter.cs new file mode 100644 index 000000000000..992c193faed5 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabase.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ReadOnlyFollowingDatabaseTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabase ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabase).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ReadOnlyFollowingDatabase.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ReadOnlyFollowingDatabase.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ReadOnlyFollowingDatabase.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabase.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabase.cs new file mode 100644 index 000000000000..df8e2dbc1de4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabase.cs @@ -0,0 +1,234 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing a read only following database. + public partial class ReadOnlyFollowingDatabase : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabase, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase __database = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Database(); + + /// The name of the attached database configuration cluster + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string AttachedDatabaseConfigurationName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).AttachedDatabaseConfigurationName; } + + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string AzureAsyncOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)__database).AzureAsyncOperation; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)__database).AzureAsyncOperation = value ?? null; } + + /// The time the data should be kept in cache for fast queries in TimeSpan. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public global::System.TimeSpan? HotCachePeriod { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).HotCachePeriod; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).HotCachePeriod = value ?? default(global::System.TimeSpan); } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Id; } + + /// Kind of the database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind Kind { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)__database).Kind; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)__database).Kind = value ; } + + /// The name of the leader cluster + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string LeaderClusterResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).LeaderClusterResourceId; } + + /// Resource location. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)__database).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)__database).Location = value ?? null; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Type = value; } + + /// Internal Acessors for AttachedDatabaseConfigurationName + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal.AttachedDatabaseConfigurationName { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).AttachedDatabaseConfigurationName; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).AttachedDatabaseConfigurationName = value; } + + /// Internal Acessors for LeaderClusterResourceId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal.LeaderClusterResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).LeaderClusterResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).LeaderClusterResourceId = value; } + + /// Internal Acessors for PrincipalsModificationKind + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal.PrincipalsModificationKind { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).PrincipalsModificationKind; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).PrincipalsModificationKind = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadOnlyFollowingDatabaseProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for SoftDeletePeriod + global::System.TimeSpan? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal.SoftDeletePeriod { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).SoftDeletePeriod; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).SoftDeletePeriod = value; } + + /// Internal Acessors for Statistics + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseInternal.Statistics { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).Statistics; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).Statistics = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Name; } + + /// The principals modification kind of the database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind? PrincipalsModificationKind { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).PrincipalsModificationKind; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseProperties _property; + + /// The database properties. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadOnlyFollowingDatabaseProperties()); set => this._property = value; } + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).ProvisioningState; } + + /// + /// The time the data should be kept before it stops being accessible to queries in TimeSpan. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public global::System.TimeSpan? SoftDeletePeriod { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).SoftDeletePeriod; } + + /// The database size - the total size of compressed data and index in bytes. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public float? StatisticsSize { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).StatisticsSize; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)Property).StatisticsSize = value ?? default(float); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Type; } + + /// + void Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable.ReadHeaders(global::System.Net.Http.Headers.HttpResponseHeaders headers) + { + if (headers.TryGetValues("Azure-AsyncOperation", out var __azureAsyncOperationHeader0)) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).AzureAsyncOperation = System.Linq.Enumerable.FirstOrDefault(__azureAsyncOperationHeader0) is string __headerAzureAsyncOperationHeader0 ? __headerAzureAsyncOperationHeader0 : (string)null; + } + } + + /// Creates an new instance. + public ReadOnlyFollowingDatabase() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__database), __database); + await eventListener.AssertObjectIsValid(nameof(__database), __database); + } + } + /// Class representing a read only following database. + public partial interface IReadOnlyFollowingDatabase : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase + { + /// The name of the attached database configuration cluster + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The name of the attached database configuration cluster", + SerializedName = @"attachedDatabaseConfigurationName", + PossibleTypes = new [] { typeof(string) })] + string AttachedDatabaseConfigurationName { get; } + /// The time the data should be kept in cache for fast queries in TimeSpan. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time the data should be kept in cache for fast queries in TimeSpan.", + SerializedName = @"hotCachePeriod", + PossibleTypes = new [] { typeof(global::System.TimeSpan) })] + global::System.TimeSpan? HotCachePeriod { get; set; } + /// The name of the leader cluster + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The name of the leader cluster", + SerializedName = @"leaderClusterResourceId", + PossibleTypes = new [] { typeof(string) })] + string LeaderClusterResourceId { get; } + /// The principals modification kind of the database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The principals modification kind of the database", + SerializedName = @"principalsModificationKind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind? PrincipalsModificationKind { get; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// + /// The time the data should be kept before it stops being accessible to queries in TimeSpan. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The time the data should be kept before it stops being accessible to queries in TimeSpan.", + SerializedName = @"softDeletePeriod", + PossibleTypes = new [] { typeof(global::System.TimeSpan) })] + global::System.TimeSpan? SoftDeletePeriod { get; } + /// The database size - the total size of compressed data and index in bytes. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The database size - the total size of compressed data and index in bytes.", + SerializedName = @"size", + PossibleTypes = new [] { typeof(float) })] + float? StatisticsSize { get; set; } + + } + /// Class representing a read only following database. + internal partial interface IReadOnlyFollowingDatabaseInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal + { + /// The name of the attached database configuration cluster + string AttachedDatabaseConfigurationName { get; set; } + /// The time the data should be kept in cache for fast queries in TimeSpan. + global::System.TimeSpan? HotCachePeriod { get; set; } + /// The name of the leader cluster + string LeaderClusterResourceId { get; set; } + /// The principals modification kind of the database + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind? PrincipalsModificationKind { get; set; } + /// The database properties. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseProperties Property { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// + /// The time the data should be kept before it stops being accessible to queries in TimeSpan. + /// + global::System.TimeSpan? SoftDeletePeriod { get; set; } + /// The statistics of the database. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics Statistics { get; set; } + /// The database size - the total size of compressed data and index in bytes. + float? StatisticsSize { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabase.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabase.json.cs new file mode 100644 index 000000000000..adaf7f8d8e25 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabase.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing a read only following database. + public partial class ReadOnlyFollowingDatabase + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabase. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabase. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabase FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ReadOnlyFollowingDatabase(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ReadOnlyFollowingDatabase(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __database = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Database(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadOnlyFollowingDatabaseProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __database?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabaseProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabaseProperties.PowerShell.cs new file mode 100644 index 000000000000..eb0e5369def3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabaseProperties.PowerShell.cs @@ -0,0 +1,200 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing the Kusto database properties. + [System.ComponentModel.TypeConverter(typeof(ReadOnlyFollowingDatabasePropertiesTypeConverter))] + public partial class ReadOnlyFollowingDatabaseProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ReadOnlyFollowingDatabaseProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ReadOnlyFollowingDatabaseProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ReadOnlyFollowingDatabaseProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Statistics")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).Statistics = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics) content.GetValueForProperty("Statistics",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).Statistics, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseStatisticsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("SoftDeletePeriod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).SoftDeletePeriod = (global::System.TimeSpan?) content.GetValueForProperty("SoftDeletePeriod",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).SoftDeletePeriod, (v) => v is global::System.TimeSpan _v ? _v : global::System.Xml.XmlConvert.ToTimeSpan( v.ToString() )); + } + if (content.Contains("HotCachePeriod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).HotCachePeriod = (global::System.TimeSpan?) content.GetValueForProperty("HotCachePeriod",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).HotCachePeriod, (v) => v is global::System.TimeSpan _v ? _v : global::System.Xml.XmlConvert.ToTimeSpan( v.ToString() )); + } + if (content.Contains("LeaderClusterResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).LeaderClusterResourceId = (string) content.GetValueForProperty("LeaderClusterResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).LeaderClusterResourceId, global::System.Convert.ToString); + } + if (content.Contains("AttachedDatabaseConfigurationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).AttachedDatabaseConfigurationName = (string) content.GetValueForProperty("AttachedDatabaseConfigurationName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).AttachedDatabaseConfigurationName, global::System.Convert.ToString); + } + if (content.Contains("PrincipalsModificationKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).PrincipalsModificationKind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind?) content.GetValueForProperty("PrincipalsModificationKind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).PrincipalsModificationKind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind.CreateFrom); + } + if (content.Contains("StatisticsSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).StatisticsSize = (float?) content.GetValueForProperty("StatisticsSize",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).StatisticsSize, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ReadOnlyFollowingDatabaseProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Statistics")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).Statistics = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics) content.GetValueForProperty("Statistics",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).Statistics, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseStatisticsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("SoftDeletePeriod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).SoftDeletePeriod = (global::System.TimeSpan?) content.GetValueForProperty("SoftDeletePeriod",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).SoftDeletePeriod, (v) => v is global::System.TimeSpan _v ? _v : global::System.Xml.XmlConvert.ToTimeSpan( v.ToString() )); + } + if (content.Contains("HotCachePeriod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).HotCachePeriod = (global::System.TimeSpan?) content.GetValueForProperty("HotCachePeriod",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).HotCachePeriod, (v) => v is global::System.TimeSpan _v ? _v : global::System.Xml.XmlConvert.ToTimeSpan( v.ToString() )); + } + if (content.Contains("LeaderClusterResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).LeaderClusterResourceId = (string) content.GetValueForProperty("LeaderClusterResourceId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).LeaderClusterResourceId, global::System.Convert.ToString); + } + if (content.Contains("AttachedDatabaseConfigurationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).AttachedDatabaseConfigurationName = (string) content.GetValueForProperty("AttachedDatabaseConfigurationName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).AttachedDatabaseConfigurationName, global::System.Convert.ToString); + } + if (content.Contains("PrincipalsModificationKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).PrincipalsModificationKind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind?) content.GetValueForProperty("PrincipalsModificationKind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).PrincipalsModificationKind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind.CreateFrom); + } + if (content.Contains("StatisticsSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).StatisticsSize = (float?) content.GetValueForProperty("StatisticsSize",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal)this).StatisticsSize, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing the Kusto database properties. + [System.ComponentModel.TypeConverter(typeof(ReadOnlyFollowingDatabasePropertiesTypeConverter))] + public partial interface IReadOnlyFollowingDatabaseProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabaseProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabaseProperties.TypeConverter.cs new file mode 100644 index 000000000000..d16fdba06aea --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabaseProperties.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ReadOnlyFollowingDatabasePropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ReadOnlyFollowingDatabaseProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ReadOnlyFollowingDatabaseProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ReadOnlyFollowingDatabaseProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabaseProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabaseProperties.cs new file mode 100644 index 000000000000..1dae6734aaad --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabaseProperties.cs @@ -0,0 +1,183 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing the Kusto database properties. + public partial class ReadOnlyFollowingDatabaseProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal + { + + /// Backing field for property. + private string _attachedDatabaseConfigurationName; + + /// The name of the attached database configuration cluster + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string AttachedDatabaseConfigurationName { get => this._attachedDatabaseConfigurationName; } + + /// Backing field for property. + private global::System.TimeSpan? _hotCachePeriod; + + /// The time the data should be kept in cache for fast queries in TimeSpan. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public global::System.TimeSpan? HotCachePeriod { get => this._hotCachePeriod; set => this._hotCachePeriod = value; } + + /// Backing field for property. + private string _leaderClusterResourceId; + + /// The name of the leader cluster + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string LeaderClusterResourceId { get => this._leaderClusterResourceId; } + + /// Internal Acessors for AttachedDatabaseConfigurationName + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal.AttachedDatabaseConfigurationName { get => this._attachedDatabaseConfigurationName; set { {_attachedDatabaseConfigurationName = value;} } } + + /// Internal Acessors for LeaderClusterResourceId + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal.LeaderClusterResourceId { get => this._leaderClusterResourceId; set { {_leaderClusterResourceId = value;} } } + + /// Internal Acessors for PrincipalsModificationKind + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal.PrincipalsModificationKind { get => this._principalsModificationKind; set { {_principalsModificationKind = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for SoftDeletePeriod + global::System.TimeSpan? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal.SoftDeletePeriod { get => this._softDeletePeriod; set { {_softDeletePeriod = value;} } } + + /// Internal Acessors for Statistics + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabasePropertiesInternal.Statistics { get => (this._statistics = this._statistics ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseStatistics()); set { {_statistics = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind? _principalsModificationKind; + + /// The principals modification kind of the database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind? PrincipalsModificationKind { get => this._principalsModificationKind; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? _provisioningState; + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private global::System.TimeSpan? _softDeletePeriod; + + /// + /// The time the data should be kept before it stops being accessible to queries in TimeSpan. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public global::System.TimeSpan? SoftDeletePeriod { get => this._softDeletePeriod; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics _statistics; + + /// The statistics of the database. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics Statistics { get => (this._statistics = this._statistics ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseStatistics()); } + + /// The database size - the total size of compressed data and index in bytes. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public float? StatisticsSize { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatisticsInternal)Statistics).Size; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatisticsInternal)Statistics).Size = value ?? default(float); } + + /// Creates an new instance. + public ReadOnlyFollowingDatabaseProperties() + { + + } + } + /// Class representing the Kusto database properties. + public partial interface IReadOnlyFollowingDatabaseProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The name of the attached database configuration cluster + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The name of the attached database configuration cluster", + SerializedName = @"attachedDatabaseConfigurationName", + PossibleTypes = new [] { typeof(string) })] + string AttachedDatabaseConfigurationName { get; } + /// The time the data should be kept in cache for fast queries in TimeSpan. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time the data should be kept in cache for fast queries in TimeSpan.", + SerializedName = @"hotCachePeriod", + PossibleTypes = new [] { typeof(global::System.TimeSpan) })] + global::System.TimeSpan? HotCachePeriod { get; set; } + /// The name of the leader cluster + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The name of the leader cluster", + SerializedName = @"leaderClusterResourceId", + PossibleTypes = new [] { typeof(string) })] + string LeaderClusterResourceId { get; } + /// The principals modification kind of the database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The principals modification kind of the database", + SerializedName = @"principalsModificationKind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind? PrincipalsModificationKind { get; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// + /// The time the data should be kept before it stops being accessible to queries in TimeSpan. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The time the data should be kept before it stops being accessible to queries in TimeSpan.", + SerializedName = @"softDeletePeriod", + PossibleTypes = new [] { typeof(global::System.TimeSpan) })] + global::System.TimeSpan? SoftDeletePeriod { get; } + /// The database size - the total size of compressed data and index in bytes. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The database size - the total size of compressed data and index in bytes.", + SerializedName = @"size", + PossibleTypes = new [] { typeof(float) })] + float? StatisticsSize { get; set; } + + } + /// Class representing the Kusto database properties. + internal partial interface IReadOnlyFollowingDatabasePropertiesInternal + + { + /// The name of the attached database configuration cluster + string AttachedDatabaseConfigurationName { get; set; } + /// The time the data should be kept in cache for fast queries in TimeSpan. + global::System.TimeSpan? HotCachePeriod { get; set; } + /// The name of the leader cluster + string LeaderClusterResourceId { get; set; } + /// The principals modification kind of the database + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind? PrincipalsModificationKind { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// + /// The time the data should be kept before it stops being accessible to queries in TimeSpan. + /// + global::System.TimeSpan? SoftDeletePeriod { get; set; } + /// The statistics of the database. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics Statistics { get; set; } + /// The database size - the total size of compressed data and index in bytes. + float? StatisticsSize { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabaseProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabaseProperties.json.cs new file mode 100644 index 000000000000..f2fd49111d53 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadOnlyFollowingDatabaseProperties.json.cs @@ -0,0 +1,137 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing the Kusto database properties. + public partial class ReadOnlyFollowingDatabaseProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadOnlyFollowingDatabaseProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ReadOnlyFollowingDatabaseProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ReadOnlyFollowingDatabaseProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_statistics = If( json?.PropertyT("statistics"), out var __jsonStatistics) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseStatistics.FromJson(__jsonStatistics) : Statistics;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_softDeletePeriod = If( json?.PropertyT("softDeletePeriod"), out var __jsonSoftDeletePeriod) ? global::System.Xml.XmlConvert.ToTimeSpan( __jsonSoftDeletePeriod ) : SoftDeletePeriod;} + {_hotCachePeriod = If( json?.PropertyT("hotCachePeriod"), out var __jsonHotCachePeriod) ? global::System.Xml.XmlConvert.ToTimeSpan( __jsonHotCachePeriod ) : HotCachePeriod;} + {_leaderClusterResourceId = If( json?.PropertyT("leaderClusterResourceId"), out var __jsonLeaderClusterResourceId) ? (string)__jsonLeaderClusterResourceId : (string)LeaderClusterResourceId;} + {_attachedDatabaseConfigurationName = If( json?.PropertyT("attachedDatabaseConfigurationName"), out var __jsonAttachedDatabaseConfigurationName) ? (string)__jsonAttachedDatabaseConfigurationName : (string)AttachedDatabaseConfigurationName;} + {_principalsModificationKind = If( json?.PropertyT("principalsModificationKind"), out var __jsonPrincipalsModificationKind) ? (string)__jsonPrincipalsModificationKind : (string)PrincipalsModificationKind;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._statistics ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._statistics.ToJson(null,serializationMode) : null, "statistics" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)(null != this._softDeletePeriod ? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(global::System.Xml.XmlConvert.ToString((global::System.TimeSpan)this._softDeletePeriod)): null), "softDeletePeriod" ,container.Add ); + } + AddIf( (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)(null != this._hotCachePeriod ? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(global::System.Xml.XmlConvert.ToString((global::System.TimeSpan)this._hotCachePeriod)): null), "hotCachePeriod" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._leaderClusterResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._leaderClusterResourceId.ToString()) : null, "leaderClusterResourceId" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._attachedDatabaseConfigurationName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._attachedDatabaseConfigurationName.ToString()) : null, "attachedDatabaseConfigurationName" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._principalsModificationKind)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._principalsModificationKind.ToString()) : null, "principalsModificationKind" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabase.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabase.PowerShell.cs new file mode 100644 index 000000000000..63c6f005cb90 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabase.PowerShell.cs @@ -0,0 +1,238 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing a read write database. + [System.ComponentModel.TypeConverter(typeof(ReadWriteDatabaseTypeConverter))] + public partial class ReadWriteDatabase + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabase DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ReadWriteDatabase(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabase DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ReadWriteDatabase(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabase FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ReadWriteDatabase(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadWriteDatabasePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind.CreateFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("Statistics")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).Statistics = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics) content.GetValueForProperty("Statistics",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).Statistics, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseStatisticsTypeConverter.ConvertFrom); + } + if (content.Contains("SoftDeletePeriod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).SoftDeletePeriod = (global::System.TimeSpan?) content.GetValueForProperty("SoftDeletePeriod",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).SoftDeletePeriod, (v) => v is global::System.TimeSpan _v ? _v : global::System.Xml.XmlConvert.ToTimeSpan( v.ToString() )); + } + if (content.Contains("HotCachePeriod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).HotCachePeriod = (global::System.TimeSpan?) content.GetValueForProperty("HotCachePeriod",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).HotCachePeriod, (v) => v is global::System.TimeSpan _v ? _v : global::System.Xml.XmlConvert.ToTimeSpan( v.ToString() )); + } + if (content.Contains("IsFollowed")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).IsFollowed = (bool?) content.GetValueForProperty("IsFollowed",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).IsFollowed, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("StatisticsSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).StatisticsSize = (float?) content.GetValueForProperty("StatisticsSize",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).StatisticsSize, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ReadWriteDatabase(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadWriteDatabasePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind.CreateFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("Statistics")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).Statistics = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics) content.GetValueForProperty("Statistics",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).Statistics, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseStatisticsTypeConverter.ConvertFrom); + } + if (content.Contains("SoftDeletePeriod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).SoftDeletePeriod = (global::System.TimeSpan?) content.GetValueForProperty("SoftDeletePeriod",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).SoftDeletePeriod, (v) => v is global::System.TimeSpan _v ? _v : global::System.Xml.XmlConvert.ToTimeSpan( v.ToString() )); + } + if (content.Contains("HotCachePeriod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).HotCachePeriod = (global::System.TimeSpan?) content.GetValueForProperty("HotCachePeriod",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).HotCachePeriod, (v) => v is global::System.TimeSpan _v ? _v : global::System.Xml.XmlConvert.ToTimeSpan( v.ToString() )); + } + if (content.Contains("IsFollowed")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).IsFollowed = (bool?) content.GetValueForProperty("IsFollowed",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).IsFollowed, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("StatisticsSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).StatisticsSize = (float?) content.GetValueForProperty("StatisticsSize",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal)this).StatisticsSize, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing a read write database. + [System.ComponentModel.TypeConverter(typeof(ReadWriteDatabaseTypeConverter))] + public partial interface IReadWriteDatabase + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabase.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabase.TypeConverter.cs new file mode 100644 index 000000000000..12ab6d25b9c7 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabase.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ReadWriteDatabaseTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabase ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabase).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ReadWriteDatabase.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ReadWriteDatabase.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ReadWriteDatabase.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabase.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabase.cs new file mode 100644 index 000000000000..d6234e4f6519 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabase.cs @@ -0,0 +1,197 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing a read write database. + public partial class ReadWriteDatabase : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabase, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase __database = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Database(); + + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string AzureAsyncOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)__database).AzureAsyncOperation; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)__database).AzureAsyncOperation = value ?? null; } + + /// The time the data should be kept in cache for fast queries in TimeSpan. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public global::System.TimeSpan? HotCachePeriod { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)Property).HotCachePeriod; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)Property).HotCachePeriod = value ?? default(global::System.TimeSpan); } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Id; } + + /// Indicates whether the database is followed. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public bool? IsFollowed { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)Property).IsFollowed; } + + /// Kind of the database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind Kind { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)__database).Kind; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)__database).Kind = value ; } + + /// Resource location. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)__database).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)__database).Location = value ?? null; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Type = value; } + + /// Internal Acessors for IsFollowed + bool? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal.IsFollowed { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)Property).IsFollowed; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)Property).IsFollowed = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadWriteDatabaseProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Statistics + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseInternal.Statistics { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)Property).Statistics; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)Property).Statistics = value; } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseProperties _property; + + /// The database properties. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadWriteDatabaseProperties()); set => this._property = value; } + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)Property).ProvisioningState; } + + /// + /// The time the data should be kept before it stops being accessible to queries in TimeSpan. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public global::System.TimeSpan? SoftDeletePeriod { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)Property).SoftDeletePeriod; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)Property).SoftDeletePeriod = value ?? default(global::System.TimeSpan); } + + /// The database size - the total size of compressed data and index in bytes. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public float? StatisticsSize { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)Property).StatisticsSize; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)Property).StatisticsSize = value ?? default(float); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__database).Type; } + + /// + void Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable.ReadHeaders(global::System.Net.Http.Headers.HttpResponseHeaders headers) + { + if (headers.TryGetValues("Azure-AsyncOperation", out var __azureAsyncOperationHeader0)) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal)this).AzureAsyncOperation = System.Linq.Enumerable.FirstOrDefault(__azureAsyncOperationHeader0) is string __headerAzureAsyncOperationHeader0 ? __headerAzureAsyncOperationHeader0 : (string)null; + } + } + + /// Creates an new instance. + public ReadWriteDatabase() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__database), __database); + await eventListener.AssertObjectIsValid(nameof(__database), __database); + } + } + /// Class representing a read write database. + public partial interface IReadWriteDatabase : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase + { + /// The time the data should be kept in cache for fast queries in TimeSpan. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time the data should be kept in cache for fast queries in TimeSpan.", + SerializedName = @"hotCachePeriod", + PossibleTypes = new [] { typeof(global::System.TimeSpan) })] + global::System.TimeSpan? HotCachePeriod { get; set; } + /// Indicates whether the database is followed. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Indicates whether the database is followed.", + SerializedName = @"isFollowed", + PossibleTypes = new [] { typeof(bool) })] + bool? IsFollowed { get; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// + /// The time the data should be kept before it stops being accessible to queries in TimeSpan. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time the data should be kept before it stops being accessible to queries in TimeSpan.", + SerializedName = @"softDeletePeriod", + PossibleTypes = new [] { typeof(global::System.TimeSpan) })] + global::System.TimeSpan? SoftDeletePeriod { get; set; } + /// The database size - the total size of compressed data and index in bytes. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The database size - the total size of compressed data and index in bytes.", + SerializedName = @"size", + PossibleTypes = new [] { typeof(float) })] + float? StatisticsSize { get; set; } + + } + /// Class representing a read write database. + internal partial interface IReadWriteDatabaseInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseInternal + { + /// The time the data should be kept in cache for fast queries in TimeSpan. + global::System.TimeSpan? HotCachePeriod { get; set; } + /// Indicates whether the database is followed. + bool? IsFollowed { get; set; } + /// The database properties. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseProperties Property { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// + /// The time the data should be kept before it stops being accessible to queries in TimeSpan. + /// + global::System.TimeSpan? SoftDeletePeriod { get; set; } + /// The statistics of the database. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics Statistics { get; set; } + /// The database size - the total size of compressed data and index in bytes. + float? StatisticsSize { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabase.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabase.json.cs new file mode 100644 index 000000000000..98e0151dddc3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabase.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing a read write database. + public partial class ReadWriteDatabase + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabase. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabase. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabase FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ReadWriteDatabase(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ReadWriteDatabase(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __database = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Database(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ReadWriteDatabaseProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __database?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabaseProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabaseProperties.PowerShell.cs new file mode 100644 index 000000000000..496c13820006 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabaseProperties.PowerShell.cs @@ -0,0 +1,182 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing the Kusto database properties. + [System.ComponentModel.TypeConverter(typeof(ReadWriteDatabasePropertiesTypeConverter))] + public partial class ReadWriteDatabaseProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ReadWriteDatabaseProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ReadWriteDatabaseProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ReadWriteDatabaseProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Statistics")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).Statistics = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics) content.GetValueForProperty("Statistics",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).Statistics, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseStatisticsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("SoftDeletePeriod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).SoftDeletePeriod = (global::System.TimeSpan?) content.GetValueForProperty("SoftDeletePeriod",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).SoftDeletePeriod, (v) => v is global::System.TimeSpan _v ? _v : global::System.Xml.XmlConvert.ToTimeSpan( v.ToString() )); + } + if (content.Contains("HotCachePeriod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).HotCachePeriod = (global::System.TimeSpan?) content.GetValueForProperty("HotCachePeriod",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).HotCachePeriod, (v) => v is global::System.TimeSpan _v ? _v : global::System.Xml.XmlConvert.ToTimeSpan( v.ToString() )); + } + if (content.Contains("IsFollowed")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).IsFollowed = (bool?) content.GetValueForProperty("IsFollowed",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).IsFollowed, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("StatisticsSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).StatisticsSize = (float?) content.GetValueForProperty("StatisticsSize",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).StatisticsSize, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ReadWriteDatabaseProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Statistics")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).Statistics = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics) content.GetValueForProperty("Statistics",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).Statistics, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseStatisticsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("SoftDeletePeriod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).SoftDeletePeriod = (global::System.TimeSpan?) content.GetValueForProperty("SoftDeletePeriod",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).SoftDeletePeriod, (v) => v is global::System.TimeSpan _v ? _v : global::System.Xml.XmlConvert.ToTimeSpan( v.ToString() )); + } + if (content.Contains("HotCachePeriod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).HotCachePeriod = (global::System.TimeSpan?) content.GetValueForProperty("HotCachePeriod",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).HotCachePeriod, (v) => v is global::System.TimeSpan _v ? _v : global::System.Xml.XmlConvert.ToTimeSpan( v.ToString() )); + } + if (content.Contains("IsFollowed")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).IsFollowed = (bool?) content.GetValueForProperty("IsFollowed",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).IsFollowed, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("StatisticsSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).StatisticsSize = (float?) content.GetValueForProperty("StatisticsSize",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal)this).StatisticsSize, (__y)=> (float) global::System.Convert.ChangeType(__y, typeof(float))); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing the Kusto database properties. + [System.ComponentModel.TypeConverter(typeof(ReadWriteDatabasePropertiesTypeConverter))] + public partial interface IReadWriteDatabaseProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabaseProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabaseProperties.TypeConverter.cs new file mode 100644 index 000000000000..6d603a441630 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabaseProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ReadWriteDatabasePropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ReadWriteDatabaseProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ReadWriteDatabaseProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ReadWriteDatabaseProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabaseProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabaseProperties.cs new file mode 100644 index 000000000000..620fb88eeea5 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabaseProperties.cs @@ -0,0 +1,140 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing the Kusto database properties. + public partial class ReadWriteDatabaseProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal + { + + /// Backing field for property. + private global::System.TimeSpan? _hotCachePeriod; + + /// The time the data should be kept in cache for fast queries in TimeSpan. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public global::System.TimeSpan? HotCachePeriod { get => this._hotCachePeriod; set => this._hotCachePeriod = value; } + + /// Backing field for property. + private bool? _isFollowed; + + /// Indicates whether the database is followed. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public bool? IsFollowed { get => this._isFollowed; } + + /// Internal Acessors for IsFollowed + bool? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal.IsFollowed { get => this._isFollowed; set { {_isFollowed = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for Statistics + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabasePropertiesInternal.Statistics { get => (this._statistics = this._statistics ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseStatistics()); set { {_statistics = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? _provisioningState; + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private global::System.TimeSpan? _softDeletePeriod; + + /// + /// The time the data should be kept before it stops being accessible to queries in TimeSpan. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public global::System.TimeSpan? SoftDeletePeriod { get => this._softDeletePeriod; set => this._softDeletePeriod = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics _statistics; + + /// The statistics of the database. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics Statistics { get => (this._statistics = this._statistics ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseStatistics()); } + + /// The database size - the total size of compressed data and index in bytes. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public float? StatisticsSize { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatisticsInternal)Statistics).Size; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatisticsInternal)Statistics).Size = value ?? default(float); } + + /// Creates an new instance. + public ReadWriteDatabaseProperties() + { + + } + } + /// Class representing the Kusto database properties. + public partial interface IReadWriteDatabaseProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The time the data should be kept in cache for fast queries in TimeSpan. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time the data should be kept in cache for fast queries in TimeSpan.", + SerializedName = @"hotCachePeriod", + PossibleTypes = new [] { typeof(global::System.TimeSpan) })] + global::System.TimeSpan? HotCachePeriod { get; set; } + /// Indicates whether the database is followed. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Indicates whether the database is followed.", + SerializedName = @"isFollowed", + PossibleTypes = new [] { typeof(bool) })] + bool? IsFollowed { get; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// + /// The time the data should be kept before it stops being accessible to queries in TimeSpan. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The time the data should be kept before it stops being accessible to queries in TimeSpan.", + SerializedName = @"softDeletePeriod", + PossibleTypes = new [] { typeof(global::System.TimeSpan) })] + global::System.TimeSpan? SoftDeletePeriod { get; set; } + /// The database size - the total size of compressed data and index in bytes. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The database size - the total size of compressed data and index in bytes.", + SerializedName = @"size", + PossibleTypes = new [] { typeof(float) })] + float? StatisticsSize { get; set; } + + } + /// Class representing the Kusto database properties. + internal partial interface IReadWriteDatabasePropertiesInternal + + { + /// The time the data should be kept in cache for fast queries in TimeSpan. + global::System.TimeSpan? HotCachePeriod { get; set; } + /// Indicates whether the database is followed. + bool? IsFollowed { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// + /// The time the data should be kept before it stops being accessible to queries in TimeSpan. + /// + global::System.TimeSpan? SoftDeletePeriod { get; set; } + /// The statistics of the database. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabaseStatistics Statistics { get; set; } + /// The database size - the total size of compressed data and index in bytes. + float? StatisticsSize { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabaseProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabaseProperties.json.cs new file mode 100644 index 000000000000..fb99fb73e212 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ReadWriteDatabaseProperties.json.cs @@ -0,0 +1,123 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing the Kusto database properties. + public partial class ReadWriteDatabaseProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IReadWriteDatabaseProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ReadWriteDatabaseProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ReadWriteDatabaseProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_statistics = If( json?.PropertyT("statistics"), out var __jsonStatistics) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabaseStatistics.FromJson(__jsonStatistics) : Statistics;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_softDeletePeriod = If( json?.PropertyT("softDeletePeriod"), out var __jsonSoftDeletePeriod) ? global::System.Xml.XmlConvert.ToTimeSpan( __jsonSoftDeletePeriod ) : SoftDeletePeriod;} + {_hotCachePeriod = If( json?.PropertyT("hotCachePeriod"), out var __jsonHotCachePeriod) ? global::System.Xml.XmlConvert.ToTimeSpan( __jsonHotCachePeriod ) : HotCachePeriod;} + {_isFollowed = If( json?.PropertyT("isFollowed"), out var __jsonIsFollowed) ? (bool?)__jsonIsFollowed : IsFollowed;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._statistics ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._statistics.ToJson(null,serializationMode) : null, "statistics" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)(null != this._softDeletePeriod ? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(global::System.Xml.XmlConvert.ToString((global::System.TimeSpan)this._softDeletePeriod)): null), "softDeletePeriod" ,container.Add ); + AddIf( (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)(null != this._hotCachePeriod ? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(global::System.Xml.XmlConvert.ToString((global::System.TimeSpan)this._hotCachePeriod)): null), "hotCachePeriod" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._isFollowed ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonBoolean((bool)this._isFollowed) : null, "isFollowed" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Script.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Script.PowerShell.cs new file mode 100644 index 000000000000..12653dbd2d14 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Script.PowerShell.cs @@ -0,0 +1,278 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Class representing a database script. + [System.ComponentModel.TypeConverter(typeof(ScriptTypeConverter))] + public partial class Script + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Script(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Script(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Script(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ScriptPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("UrlSasToken")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).UrlSasToken = (string) content.GetValueForProperty("UrlSasToken",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).UrlSasToken, global::System.Convert.ToString); + } + if (content.Contains("Content")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).Content = (string) content.GetValueForProperty("Content",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).Content, global::System.Convert.ToString); + } + if (content.Contains("ForceUpdateTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).ForceUpdateTag = (string) content.GetValueForProperty("ForceUpdateTag",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).ForceUpdateTag, global::System.Convert.ToString); + } + if (content.Contains("ContinueOnError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).ContinueOnError = (bool?) content.GetValueForProperty("ContinueOnError",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).ContinueOnError, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Script(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ScriptPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("AzureAsyncOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).AzureAsyncOperation = (string) content.GetValueForProperty("AzureAsyncOperation",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).AzureAsyncOperation, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("UrlSasToken")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).UrlSasToken = (string) content.GetValueForProperty("UrlSasToken",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).UrlSasToken, global::System.Convert.ToString); + } + if (content.Contains("Content")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).Content = (string) content.GetValueForProperty("Content",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).Content, global::System.Convert.ToString); + } + if (content.Contains("ForceUpdateTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).ForceUpdateTag = (string) content.GetValueForProperty("ForceUpdateTag",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).ForceUpdateTag, global::System.Convert.ToString); + } + if (content.Contains("ContinueOnError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).ContinueOnError = (bool?) content.GetValueForProperty("ContinueOnError",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).ContinueOnError, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Class representing a database script. + [System.ComponentModel.TypeConverter(typeof(ScriptTypeConverter))] + public partial interface IScript + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Script.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Script.TypeConverter.cs new file mode 100644 index 000000000000..76885f3e5ee8 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Script.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ScriptTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Script.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Script.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Script.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Script.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Script.cs new file mode 100644 index 000000000000..75c250f39ca6 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Script.cs @@ -0,0 +1,317 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing a database script. + public partial class Script : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IValidates, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(); + + /// Backing field for property. + private string _azureAsyncOperation; + + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string AzureAsyncOperation { get => this._azureAsyncOperation; set => this._azureAsyncOperation = value; } + + /// + /// The script content. This property should be used when the script is provide inline and not through file in a SA. Must + /// not be used together with scriptUrl and scriptUrlSasToken properties. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string Content { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)Property).ScriptContent; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)Property).ScriptContent = value ?? null; } + + /// Flag that indicates whether to continue if one of the command fails. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public bool? ContinueOnError { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)Property).ContinueOnError; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)Property).ContinueOnError = value ?? default(bool); } + + /// A unique string. If changed the script will be applied again. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string ForceUpdateTag { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)Property).ForceUpdateTag; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)Property).ForceUpdateTag = value ?? null; } + + /// + /// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptProperties Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ScriptProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// The name of the resource + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptProperties _property; + + /// The database script. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ScriptProperties()); set => this._property = value; } + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)Property).ProvisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData _systemData; + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType)""); } + + /// + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal)__resource).Type; } + + /// + /// The url to the KQL script blob file. Must not be used together with scriptContent property + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string Url { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)Property).ScriptUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)Property).ScriptUrl = value ?? null; } + + /// + /// The SaS token that provide read access to the file which contain the script. Must be provided when using scriptUrl property. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Inlined)] + public string UrlSasToken { get => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)Property).ScriptUrlSasToken; set => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)Property).ScriptUrlSasToken = value ?? null; } + + /// + void Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IHeaderSerializable.ReadHeaders(global::System.Net.Http.Headers.HttpResponseHeaders headers) + { + if (headers.TryGetValues("Azure-AsyncOperation", out var __azureAsyncOperationHeader0)) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptInternal)this).AzureAsyncOperation = System.Linq.Enumerable.FirstOrDefault(__azureAsyncOperationHeader0) is string __headerAzureAsyncOperationHeader0 ? __headerAzureAsyncOperationHeader0 : (string)null; + } + } + + /// Creates an new instance. + public Script() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Class representing a database script. + public partial interface IScript : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResource + { + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"Azure-AsyncOperation", + PossibleTypes = new [] { typeof(string) })] + string AzureAsyncOperation { get; set; } + /// + /// The script content. This property should be used when the script is provide inline and not through file in a SA. Must + /// not be used together with scriptUrl and scriptUrlSasToken properties. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The script content. This property should be used when the script is provide inline and not through file in a SA. Must not be used together with scriptUrl and scriptUrlSasToken properties.", + SerializedName = @"scriptContent", + PossibleTypes = new [] { typeof(string) })] + string Content { get; set; } + /// Flag that indicates whether to continue if one of the command fails. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Flag that indicates whether to continue if one of the command fails.", + SerializedName = @"continueOnErrors", + PossibleTypes = new [] { typeof(bool) })] + bool? ContinueOnError { get; set; } + /// A unique string. If changed the script will be applied again. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A unique string. If changed the script will be applied again.", + SerializedName = @"forceUpdateTag", + PossibleTypes = new [] { typeof(string) })] + string ForceUpdateTag { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource creation (UTC).", + SerializedName = @"createdAt", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity that created the resource.", + SerializedName = @"createdBy", + PossibleTypes = new [] { typeof(string) })] + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource last modification (UTC)", + SerializedName = @"lastModifiedAt", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? SystemDataLastModifiedAt { get; set; } + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identity that last modified the resource.", + SerializedName = @"lastModifiedBy", + PossibleTypes = new [] { typeof(string) })] + string SystemDataLastModifiedBy { get; set; } + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that last modified the resource.", + SerializedName = @"lastModifiedByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// + /// The url to the KQL script blob file. Must not be used together with scriptContent property + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The url to the KQL script blob file. Must not be used together with scriptContent property", + SerializedName = @"scriptUrl", + PossibleTypes = new [] { typeof(string) })] + string Url { get; set; } + /// + /// The SaS token that provide read access to the file which contain the script. Must be provided when using scriptUrl property. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The SaS token that provide read access to the file which contain the script. Must be provided when using scriptUrl property.", + SerializedName = @"scriptUrlSasToken", + PossibleTypes = new [] { typeof(string) })] + string UrlSasToken { get; set; } + + } + /// Class representing a database script. + internal partial interface IScriptInternal : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.IResourceInternal + { + string AzureAsyncOperation { get; set; } + /// + /// The script content. This property should be used when the script is provide inline and not through file in a SA. Must + /// not be used together with scriptUrl and scriptUrlSasToken properties. + /// + string Content { get; set; } + /// Flag that indicates whether to continue if one of the command fails. + bool? ContinueOnError { get; set; } + /// A unique string. If changed the script will be applied again. + string ForceUpdateTag { get; set; } + /// The database script. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptProperties Property { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// Metadata pertaining to creation and last modification of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.ISystemData SystemData { get; set; } + /// The timestamp of resource creation (UTC). + global::System.DateTime? SystemDataCreatedAt { get; set; } + /// The identity that created the resource. + string SystemDataCreatedBy { get; set; } + /// The type of identity that created the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + global::System.DateTime? SystemDataLastModifiedAt { get; set; } + /// The identity that last modified the resource. + string SystemDataLastModifiedBy { get; set; } + /// The type of identity that last modified the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// + /// The url to the KQL script blob file. Must not be used together with scriptContent property + /// + string Url { get; set; } + /// + /// The SaS token that provide read access to the file which contain the script. Must be provided when using scriptUrl property. + /// + string UrlSasToken { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/Script.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Script.json.cs new file mode 100644 index 000000000000..2ee9613ea326 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/Script.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Class representing a database script. + public partial class Script + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new Script(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal Script(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ScriptProperties.FromJson(__jsonProperties) : Property;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptCheckNameRequest.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptCheckNameRequest.PowerShell.cs new file mode 100644 index 000000000000..9bbc0f2b0dc8 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptCheckNameRequest.PowerShell.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A script name availability request. + [System.ComponentModel.TypeConverter(typeof(ScriptCheckNameRequestTypeConverter))] + public partial class ScriptCheckNameRequest + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ScriptCheckNameRequest(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ScriptCheckNameRequest(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ScriptCheckNameRequest(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequestInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequestInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ScriptCheckNameRequest(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequestInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequestInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequestInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequestInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A script name availability request. + [System.ComponentModel.TypeConverter(typeof(ScriptCheckNameRequestTypeConverter))] + public partial interface IScriptCheckNameRequest + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptCheckNameRequest.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptCheckNameRequest.TypeConverter.cs new file mode 100644 index 000000000000..1975925eb79b --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptCheckNameRequest.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ScriptCheckNameRequestTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ScriptCheckNameRequest.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ScriptCheckNameRequest.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ScriptCheckNameRequest.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptCheckNameRequest.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptCheckNameRequest.cs new file mode 100644 index 000000000000..6d68c92ef209 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptCheckNameRequest.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A script name availability request. + public partial class ScriptCheckNameRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequestInternal + { + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequestInternal.Type { get => this._type; set { {_type = value;} } } + + /// Backing field for property. + private string _name; + + /// Script name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _type= @"Microsoft.Kusto/clusters/databases/scripts"; + + /// The type of resource, Microsoft.Kusto/clusters/databases/scripts. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Type { get => this._type; } + + /// Creates an new instance. + public ScriptCheckNameRequest() + { + + } + } + /// A script name availability request. + public partial interface IScriptCheckNameRequest : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Script name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Script name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// The type of resource, Microsoft.Kusto/clusters/databases/scripts. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = true, + Description = @"The type of resource, Microsoft.Kusto/clusters/databases/scripts.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; } + + } + /// A script name availability request. + internal partial interface IScriptCheckNameRequestInternal + + { + /// Script name. + string Name { get; set; } + /// The type of resource, Microsoft.Kusto/clusters/databases/scripts. + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptCheckNameRequest.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptCheckNameRequest.json.cs new file mode 100644 index 000000000000..6ed56693ee3b --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptCheckNameRequest.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A script name availability request. + public partial class ScriptCheckNameRequest + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ScriptCheckNameRequest(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ScriptCheckNameRequest(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptListResult.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptListResult.PowerShell.cs new file mode 100644 index 000000000000..bd3f3e417951 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptListResult.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The list Kusto database script operation response. + [System.ComponentModel.TypeConverter(typeof(ScriptListResultTypeConverter))] + public partial class ScriptListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ScriptListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ScriptListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ScriptListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ScriptTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ScriptListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ScriptTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The list Kusto database script operation response. + [System.ComponentModel.TypeConverter(typeof(ScriptListResultTypeConverter))] + public partial interface IScriptListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptListResult.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptListResult.TypeConverter.cs new file mode 100644 index 000000000000..456ad54e990f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ScriptListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ScriptListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ScriptListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ScriptListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptListResult.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptListResult.cs new file mode 100644 index 000000000000..f9f6e00b0006 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptListResult.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto database script operation response. + public partial class ScriptListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptListResult, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptListResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript[] _value; + + /// The list of Kusto scripts. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ScriptListResult() + { + + } + } + /// The list Kusto database script operation response. + public partial interface IScriptListResult : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The list of Kusto scripts. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of Kusto scripts.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript[] Value { get; set; } + + } + /// The list Kusto database script operation response. + internal partial interface IScriptListResultInternal + + { + /// The list of Kusto scripts. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptListResult.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptListResult.json.cs new file mode 100644 index 000000000000..147b443bdf88 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptListResult.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list Kusto database script operation response. + public partial class ScriptListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ScriptListResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ScriptListResult(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Script.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptProperties.PowerShell.cs new file mode 100644 index 000000000000..b9505aac753f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptProperties.PowerShell.cs @@ -0,0 +1,182 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A class representing database script property. + [System.ComponentModel.TypeConverter(typeof(ScriptPropertiesTypeConverter))] + public partial class ScriptProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ScriptProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ScriptProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ScriptProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ScriptUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ScriptUrl = (string) content.GetValueForProperty("ScriptUrl",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ScriptUrl, global::System.Convert.ToString); + } + if (content.Contains("ScriptUrlSasToken")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ScriptUrlSasToken = (string) content.GetValueForProperty("ScriptUrlSasToken",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ScriptUrlSasToken, global::System.Convert.ToString); + } + if (content.Contains("ScriptContent")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ScriptContent = (string) content.GetValueForProperty("ScriptContent",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ScriptContent, global::System.Convert.ToString); + } + if (content.Contains("ForceUpdateTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ForceUpdateTag = (string) content.GetValueForProperty("ForceUpdateTag",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ForceUpdateTag, global::System.Convert.ToString); + } + if (content.Contains("ContinueOnError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ContinueOnError = (bool?) content.GetValueForProperty("ContinueOnError",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ContinueOnError, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ScriptProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ScriptUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ScriptUrl = (string) content.GetValueForProperty("ScriptUrl",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ScriptUrl, global::System.Convert.ToString); + } + if (content.Contains("ScriptUrlSasToken")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ScriptUrlSasToken = (string) content.GetValueForProperty("ScriptUrlSasToken",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ScriptUrlSasToken, global::System.Convert.ToString); + } + if (content.Contains("ScriptContent")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ScriptContent = (string) content.GetValueForProperty("ScriptContent",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ScriptContent, global::System.Convert.ToString); + } + if (content.Contains("ForceUpdateTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ForceUpdateTag = (string) content.GetValueForProperty("ForceUpdateTag",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ForceUpdateTag, global::System.Convert.ToString); + } + if (content.Contains("ContinueOnError")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ContinueOnError = (bool?) content.GetValueForProperty("ContinueOnError",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ContinueOnError, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState.CreateFrom); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A class representing database script property. + [System.ComponentModel.TypeConverter(typeof(ScriptPropertiesTypeConverter))] + public partial interface IScriptProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptProperties.TypeConverter.cs new file mode 100644 index 000000000000..6777907bf5eb --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ScriptPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ScriptProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ScriptProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ScriptProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptProperties.cs new file mode 100644 index 000000000000..3379405c5a16 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptProperties.cs @@ -0,0 +1,160 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class representing database script property. + public partial class ScriptProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal + { + + /// Backing field for property. + private bool? _continueOnError; + + /// Flag that indicates whether to continue if one of the command fails. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public bool? ContinueOnError { get => this._continueOnError; set => this._continueOnError = value; } + + /// Backing field for property. + private string _forceUpdateTag; + + /// A unique string. If changed the script will be applied again. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ForceUpdateTag { get => this._forceUpdateTag; set => this._forceUpdateTag = value; } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? _provisioningState; + + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private string _scriptContent; + + /// + /// The script content. This property should be used when the script is provide inline and not through file in a SA. Must + /// not be used together with scriptUrl and scriptUrlSasToken properties. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ScriptContent { get => this._scriptContent; set => this._scriptContent = value; } + + /// Backing field for property. + private string _scriptUrl; + + /// + /// The url to the KQL script blob file. Must not be used together with scriptContent property + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ScriptUrl { get => this._scriptUrl; set => this._scriptUrl = value; } + + /// Backing field for property. + private string _scriptUrlSasToken; + + /// + /// The SaS token that provide read access to the file which contain the script. Must be provided when using scriptUrl property. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ScriptUrlSasToken { get => this._scriptUrlSasToken; set => this._scriptUrlSasToken = value; } + + /// Creates an new instance. + public ScriptProperties() + { + + } + } + /// A class representing database script property. + public partial interface IScriptProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Flag that indicates whether to continue if one of the command fails. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Flag that indicates whether to continue if one of the command fails.", + SerializedName = @"continueOnErrors", + PossibleTypes = new [] { typeof(bool) })] + bool? ContinueOnError { get; set; } + /// A unique string. If changed the script will be applied again. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A unique string. If changed the script will be applied again.", + SerializedName = @"forceUpdateTag", + PossibleTypes = new [] { typeof(string) })] + string ForceUpdateTag { get; set; } + /// The provisioned state of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioned state of the resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; } + /// + /// The script content. This property should be used when the script is provide inline and not through file in a SA. Must + /// not be used together with scriptUrl and scriptUrlSasToken properties. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The script content. This property should be used when the script is provide inline and not through file in a SA. Must not be used together with scriptUrl and scriptUrlSasToken properties.", + SerializedName = @"scriptContent", + PossibleTypes = new [] { typeof(string) })] + string ScriptContent { get; set; } + /// + /// The url to the KQL script blob file. Must not be used together with scriptContent property + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The url to the KQL script blob file. Must not be used together with scriptContent property", + SerializedName = @"scriptUrl", + PossibleTypes = new [] { typeof(string) })] + string ScriptUrl { get; set; } + /// + /// The SaS token that provide read access to the file which contain the script. Must be provided when using scriptUrl property. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The SaS token that provide read access to the file which contain the script. Must be provided when using scriptUrl property.", + SerializedName = @"scriptUrlSasToken", + PossibleTypes = new [] { typeof(string) })] + string ScriptUrlSasToken { get; set; } + + } + /// A class representing database script property. + internal partial interface IScriptPropertiesInternal + + { + /// Flag that indicates whether to continue if one of the command fails. + bool? ContinueOnError { get; set; } + /// A unique string. If changed the script will be applied again. + string ForceUpdateTag { get; set; } + /// The provisioned state of the resource. + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState? ProvisioningState { get; set; } + /// + /// The script content. This property should be used when the script is provide inline and not through file in a SA. Must + /// not be used together with scriptUrl and scriptUrlSasToken properties. + /// + string ScriptContent { get; set; } + /// + /// The url to the KQL script blob file. Must not be used together with scriptContent property + /// + string ScriptUrl { get; set; } + /// + /// The SaS token that provide read access to the file which contain the script. Must be provided when using scriptUrl property. + /// + string ScriptUrlSasToken { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptProperties.json.cs new file mode 100644 index 000000000000..cbe47a9a0c8b --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/ScriptProperties.json.cs @@ -0,0 +1,119 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class representing database script property. + public partial class ScriptProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new ScriptProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal ScriptProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_scriptUrl = If( json?.PropertyT("scriptUrl"), out var __jsonScriptUrl) ? (string)__jsonScriptUrl : (string)ScriptUrl;} + {_scriptUrlSasToken = If( json?.PropertyT("scriptUrlSasToken"), out var __jsonScriptUrlSasToken) ? (string)__jsonScriptUrlSasToken : (string)ScriptUrlSasToken;} + {_scriptContent = If( json?.PropertyT("scriptContent"), out var __jsonScriptContent) ? (string)__jsonScriptContent : (string)ScriptContent;} + {_forceUpdateTag = If( json?.PropertyT("forceUpdateTag"), out var __jsonForceUpdateTag) ? (string)__jsonForceUpdateTag : (string)ForceUpdateTag;} + {_continueOnError = If( json?.PropertyT("continueOnErrors"), out var __jsonContinueOnErrors) ? (bool?)__jsonContinueOnErrors : ContinueOnError;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._scriptUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._scriptUrl.ToString()) : null, "scriptUrl" ,container.Add ); + AddIf( null != (((object)this._scriptUrlSasToken)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._scriptUrlSasToken.ToString()) : null, "scriptUrlSasToken" ,container.Add ); + AddIf( null != (((object)this._scriptContent)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._scriptContent.ToString()) : null, "scriptContent" ,container.Add ); + AddIf( null != (((object)this._forceUpdateTag)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._forceUpdateTag.ToString()) : null, "forceUpdateTag" ,container.Add ); + AddIf( null != this._continueOnError ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonBoolean((bool)this._continueOnError) : null, "continueOnErrors" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescription.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescription.PowerShell.cs new file mode 100644 index 000000000000..49059a601910 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescription.PowerShell.cs @@ -0,0 +1,182 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The Kusto SKU description of given resource type + [System.ComponentModel.TypeConverter(typeof(SkuDescriptionTypeConverter))] + public partial class SkuDescription + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SkuDescription(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SkuDescription(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SkuDescription(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).ResourceType = (string) content.GetValueForProperty("ResourceType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).ResourceType, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Tier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).Tier = (string) content.GetValueForProperty("Tier",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).Tier, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).Location = (string[]) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).Location, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("LocationInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).LocationInfo = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem[]) content.GetValueForProperty("LocationInfo",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).LocationInfo, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.SkuLocationInfoItemTypeConverter.ConvertFrom)); + } + if (content.Contains("Restriction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).Restriction = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny[]) content.GetValueForProperty("Restriction",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).Restriction, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.AnyTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SkuDescription(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).ResourceType = (string) content.GetValueForProperty("ResourceType",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).ResourceType, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Tier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).Tier = (string) content.GetValueForProperty("Tier",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).Tier, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).Location = (string[]) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).Location, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("LocationInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).LocationInfo = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem[]) content.GetValueForProperty("LocationInfo",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).LocationInfo, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.SkuLocationInfoItemTypeConverter.ConvertFrom)); + } + if (content.Contains("Restriction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).Restriction = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny[]) content.GetValueForProperty("Restriction",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal)this).Restriction, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.AnyTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The Kusto SKU description of given resource type + [System.ComponentModel.TypeConverter(typeof(SkuDescriptionTypeConverter))] + public partial interface ISkuDescription + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescription.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescription.TypeConverter.cs new file mode 100644 index 000000000000..f1afaf7a851f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescription.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SkuDescriptionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SkuDescription.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SkuDescription.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SkuDescription.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescription.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescription.cs new file mode 100644 index 000000000000..f7ba6fe4d9a4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescription.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The Kusto SKU description of given resource type + public partial class SkuDescription : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal + { + + /// Backing field for property. + private string[] _location; + + /// The set of locations that the SKU is available + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string[] Location { get => this._location; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem[] _locationInfo; + + /// Locations and zones + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem[] LocationInfo { get => this._locationInfo; } + + /// Internal Acessors for Location + string[] Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal.Location { get => this._location; set { {_location = value;} } } + + /// Internal Acessors for LocationInfo + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem[] Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal.LocationInfo { get => this._locationInfo; set { {_locationInfo = value;} } } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for ResourceType + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal.ResourceType { get => this._resourceType; set { {_resourceType = value;} } } + + /// Internal Acessors for Restriction + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny[] Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal.Restriction { get => this._restriction; set { {_restriction = value;} } } + + /// Internal Acessors for Tier + string Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionInternal.Tier { get => this._tier; set { {_tier = value;} } } + + /// Backing field for property. + private string _name; + + /// The name of the SKU + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private string _resourceType; + + /// The resource type + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ResourceType { get => this._resourceType; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny[] _restriction; + + /// The restrictions because of which SKU cannot be used + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny[] Restriction { get => this._restriction; } + + /// Backing field for property. + private string _tier; + + /// The tier of the SKU + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Tier { get => this._tier; } + + /// Creates an new instance. + public SkuDescription() + { + + } + } + /// The Kusto SKU description of given resource type + public partial interface ISkuDescription : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The set of locations that the SKU is available + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The set of locations that the SKU is available", + SerializedName = @"locations", + PossibleTypes = new [] { typeof(string) })] + string[] Location { get; } + /// Locations and zones + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Locations and zones", + SerializedName = @"locationInfo", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem[] LocationInfo { get; } + /// The name of the SKU + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The name of the SKU", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// The resource type + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The resource type", + SerializedName = @"resourceType", + PossibleTypes = new [] { typeof(string) })] + string ResourceType { get; } + /// The restrictions because of which SKU cannot be used + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The restrictions because of which SKU cannot be used", + SerializedName = @"restrictions", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny[] Restriction { get; } + /// The tier of the SKU + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The tier of the SKU", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + string Tier { get; } + + } + /// The Kusto SKU description of given resource type + internal partial interface ISkuDescriptionInternal + + { + /// The set of locations that the SKU is available + string[] Location { get; set; } + /// Locations and zones + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem[] LocationInfo { get; set; } + /// The name of the SKU + string Name { get; set; } + /// The resource type + string ResourceType { get; set; } + /// The restrictions because of which SKU cannot be used + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny[] Restriction { get; set; } + /// The tier of the SKU + string Tier { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescription.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescription.json.cs new file mode 100644 index 000000000000..c1bcaaf03d36 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescription.json.cs @@ -0,0 +1,158 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The Kusto SKU description of given resource type + public partial class SkuDescription + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new SkuDescription(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal SkuDescription(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceType = If( json?.PropertyT("resourceType"), out var __jsonResourceType) ? (string)__jsonResourceType : (string)ResourceType;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_tier = If( json?.PropertyT("tier"), out var __jsonTier) ? (string)__jsonTier : (string)Tier;} + {_location = If( json?.PropertyT("locations"), out var __jsonLocations) ? If( __jsonLocations as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(string) (__u is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Location;} + {_locationInfo = If( json?.PropertyT("locationInfo"), out var __jsonLocationInfo) ? If( __jsonLocationInfo as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __q) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__q, (__p)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.SkuLocationInfoItem.FromJson(__p) )) ))() : null : LocationInfo;} + {_restriction = If( json?.PropertyT("restrictions"), out var __jsonRestrictions) ? If( __jsonRestrictions as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __l) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__l, (__k)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IAny) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Any.FromJson(__k) )) ))() : null : Restriction;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._resourceType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._resourceType.ToString()) : null, "resourceType" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._tier)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._tier.ToString()) : null, "tier" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._location) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._location ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("locations",__w); + } + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._locationInfo) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __s in this._locationInfo ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("locationInfo",__r); + } + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._restriction) + { + var __m = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __n in this._restriction ) + { + AddIf(__n?.ToJson(null, serializationMode) ,__m.Add); + } + container.Add("restrictions",__m); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescriptionList.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescriptionList.PowerShell.cs new file mode 100644 index 000000000000..ff0b6440cbb3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescriptionList.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The list of the EngagementFabric SKU descriptions + [System.ComponentModel.TypeConverter(typeof(SkuDescriptionListTypeConverter))] + public partial class SkuDescriptionList + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SkuDescriptionList(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SkuDescriptionList(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SkuDescriptionList(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.SkuDescriptionTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SkuDescriptionList(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.SkuDescriptionTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The list of the EngagementFabric SKU descriptions + [System.ComponentModel.TypeConverter(typeof(SkuDescriptionListTypeConverter))] + public partial interface ISkuDescriptionList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescriptionList.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescriptionList.TypeConverter.cs new file mode 100644 index 000000000000..5bb13c0af76d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescriptionList.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SkuDescriptionListTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SkuDescriptionList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SkuDescriptionList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SkuDescriptionList.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescriptionList.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescriptionList.cs new file mode 100644 index 000000000000..4fde7a75b0ef --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescriptionList.cs @@ -0,0 +1,54 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list of the EngagementFabric SKU descriptions + public partial class SkuDescriptionList : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionList, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionListInternal + { + + /// Internal Acessors for Value + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription[] Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionListInternal.Value { get => this._value; set { {_value = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription[] _value; + + /// SKU descriptions + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription[] Value { get => this._value; } + + /// Creates an new instance. + public SkuDescriptionList() + { + + } + } + /// The list of the EngagementFabric SKU descriptions + public partial interface ISkuDescriptionList : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// SKU descriptions + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"SKU descriptions", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription) })] + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription[] Value { get; } + + } + /// The list of the EngagementFabric SKU descriptions + internal partial interface ISkuDescriptionListInternal + + { + /// SKU descriptions + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescriptionList.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescriptionList.json.cs new file mode 100644 index 000000000000..e764dd9599fc --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuDescriptionList.json.cs @@ -0,0 +1,117 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The list of the EngagementFabric SKU descriptions + public partial class SkuDescriptionList + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescriptionList FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new SkuDescriptionList(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal SkuDescriptionList(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? If( __jsonValue as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription) (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.SkuDescription.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuLocationInfoItem.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuLocationInfoItem.PowerShell.cs new file mode 100644 index 000000000000..b496ec6c09bc --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuLocationInfoItem.PowerShell.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// The locations and zones info for SKU. + [System.ComponentModel.TypeConverter(typeof(SkuLocationInfoItemTypeConverter))] + public partial class SkuLocationInfoItem + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SkuLocationInfoItem(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SkuLocationInfoItem(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SkuLocationInfoItem(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItemInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItemInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Zone")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItemInternal)this).Zone = (string[]) content.GetValueForProperty("Zone",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItemInternal)this).Zone, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SkuLocationInfoItem(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItemInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItemInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Zone")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItemInternal)this).Zone = (string[]) content.GetValueForProperty("Zone",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItemInternal)this).Zone, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The locations and zones info for SKU. + [System.ComponentModel.TypeConverter(typeof(SkuLocationInfoItemTypeConverter))] + public partial interface ISkuLocationInfoItem + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuLocationInfoItem.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuLocationInfoItem.TypeConverter.cs new file mode 100644 index 000000000000..0a86be9920a6 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuLocationInfoItem.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SkuLocationInfoItemTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SkuLocationInfoItem.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SkuLocationInfoItem.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SkuLocationInfoItem.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuLocationInfoItem.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuLocationInfoItem.cs new file mode 100644 index 000000000000..f58bcccb261b --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuLocationInfoItem.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The locations and zones info for SKU. + public partial class SkuLocationInfoItem : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItemInternal + { + + /// Backing field for property. + private string _location; + + /// The available location of the SKU. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Backing field for property. + private string[] _zone; + + /// The available zone of the SKU. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string[] Zone { get => this._zone; set => this._zone = value; } + + /// Creates an new instance. + public SkuLocationInfoItem() + { + + } + } + /// The locations and zones info for SKU. + public partial interface ISkuLocationInfoItem : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The available location of the SKU. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The available location of the SKU.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// The available zone of the SKU. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The available zone of the SKU.", + SerializedName = @"zones", + PossibleTypes = new [] { typeof(string) })] + string[] Zone { get; set; } + + } + /// The locations and zones info for SKU. + internal partial interface ISkuLocationInfoItemInternal + + { + /// The available location of the SKU. + string Location { get; set; } + /// The available zone of the SKU. + string[] Zone { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuLocationInfoItem.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuLocationInfoItem.json.cs new file mode 100644 index 000000000000..1f3f93a2303c --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/SkuLocationInfoItem.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// The locations and zones info for SKU. + public partial class SkuLocationInfoItem + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuLocationInfoItem FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new SkuLocationInfoItem(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal SkuLocationInfoItem(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + {_zone = If( json?.PropertyT("zones"), out var __jsonZones) ? If( __jsonZones as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(string) (__u is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Zone;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._location)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._location.ToString()) : null, "location" ,container.Add ); + if (null != this._zone) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._zone ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("zones",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/TableLevelSharingProperties.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/TableLevelSharingProperties.PowerShell.cs new file mode 100644 index 000000000000..e24706d05754 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/TableLevelSharingProperties.PowerShell.cs @@ -0,0 +1,182 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Tables that will be included and excluded in the follower database + [System.ComponentModel.TypeConverter(typeof(TableLevelSharingPropertiesTypeConverter))] + public partial class TableLevelSharingProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TableLevelSharingProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TableLevelSharingProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TableLevelSharingProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("TablesToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).TablesToInclude = (string[]) content.GetValueForProperty("TablesToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).TablesToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TablesToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).TablesToExclude = (string[]) content.GetValueForProperty("TablesToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).TablesToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ExternalTablesToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).ExternalTablesToInclude = (string[]) content.GetValueForProperty("ExternalTablesToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).ExternalTablesToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ExternalTablesToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).ExternalTablesToExclude = (string[]) content.GetValueForProperty("ExternalTablesToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).ExternalTablesToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("MaterializedViewsToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).MaterializedViewsToInclude = (string[]) content.GetValueForProperty("MaterializedViewsToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).MaterializedViewsToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("MaterializedViewsToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).MaterializedViewsToExclude = (string[]) content.GetValueForProperty("MaterializedViewsToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).MaterializedViewsToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal TableLevelSharingProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("TablesToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).TablesToInclude = (string[]) content.GetValueForProperty("TablesToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).TablesToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("TablesToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).TablesToExclude = (string[]) content.GetValueForProperty("TablesToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).TablesToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ExternalTablesToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).ExternalTablesToInclude = (string[]) content.GetValueForProperty("ExternalTablesToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).ExternalTablesToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ExternalTablesToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).ExternalTablesToExclude = (string[]) content.GetValueForProperty("ExternalTablesToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).ExternalTablesToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("MaterializedViewsToInclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).MaterializedViewsToInclude = (string[]) content.GetValueForProperty("MaterializedViewsToInclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).MaterializedViewsToInclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("MaterializedViewsToExclude")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).MaterializedViewsToExclude = (string[]) content.GetValueForProperty("MaterializedViewsToExclude",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal)this).MaterializedViewsToExclude, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Tables that will be included and excluded in the follower database + [System.ComponentModel.TypeConverter(typeof(TableLevelSharingPropertiesTypeConverter))] + public partial interface ITableLevelSharingProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/TableLevelSharingProperties.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/TableLevelSharingProperties.TypeConverter.cs new file mode 100644 index 000000000000..d6c5f0046d9a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/TableLevelSharingProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TableLevelSharingPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TableLevelSharingProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TableLevelSharingProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TableLevelSharingProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/TableLevelSharingProperties.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/TableLevelSharingProperties.cs new file mode 100644 index 000000000000..b64bb263f423 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/TableLevelSharingProperties.cs @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Tables that will be included and excluded in the follower database + public partial class TableLevelSharingProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingPropertiesInternal + { + + /// Backing field for property. + private string[] _externalTablesToExclude; + + /// List of external tables exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string[] ExternalTablesToExclude { get => this._externalTablesToExclude; set => this._externalTablesToExclude = value; } + + /// Backing field for property. + private string[] _externalTablesToInclude; + + /// List of external tables to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string[] ExternalTablesToInclude { get => this._externalTablesToInclude; set => this._externalTablesToInclude = value; } + + /// Backing field for property. + private string[] _materializedViewsToExclude; + + /// List of materialized views exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string[] MaterializedViewsToExclude { get => this._materializedViewsToExclude; set => this._materializedViewsToExclude = value; } + + /// Backing field for property. + private string[] _materializedViewsToInclude; + + /// List of materialized views to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string[] MaterializedViewsToInclude { get => this._materializedViewsToInclude; set => this._materializedViewsToInclude = value; } + + /// Backing field for property. + private string[] _tablesToExclude; + + /// List of tables to exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string[] TablesToExclude { get => this._tablesToExclude; set => this._tablesToExclude = value; } + + /// Backing field for property. + private string[] _tablesToInclude; + + /// List of tables to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string[] TablesToInclude { get => this._tablesToInclude; set => this._tablesToInclude = value; } + + /// Creates an new instance. + public TableLevelSharingProperties() + { + + } + } + /// Tables that will be included and excluded in the follower database + public partial interface ITableLevelSharingProperties : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// List of external tables exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of external tables exclude from the follower database", + SerializedName = @"externalTablesToExclude", + PossibleTypes = new [] { typeof(string) })] + string[] ExternalTablesToExclude { get; set; } + /// List of external tables to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of external tables to include in the follower database", + SerializedName = @"externalTablesToInclude", + PossibleTypes = new [] { typeof(string) })] + string[] ExternalTablesToInclude { get; set; } + /// List of materialized views exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of materialized views exclude from the follower database", + SerializedName = @"materializedViewsToExclude", + PossibleTypes = new [] { typeof(string) })] + string[] MaterializedViewsToExclude { get; set; } + /// List of materialized views to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of materialized views to include in the follower database", + SerializedName = @"materializedViewsToInclude", + PossibleTypes = new [] { typeof(string) })] + string[] MaterializedViewsToInclude { get; set; } + /// List of tables to exclude from the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of tables to exclude from the follower database", + SerializedName = @"tablesToExclude", + PossibleTypes = new [] { typeof(string) })] + string[] TablesToExclude { get; set; } + /// List of tables to include in the follower database + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of tables to include in the follower database", + SerializedName = @"tablesToInclude", + PossibleTypes = new [] { typeof(string) })] + string[] TablesToInclude { get; set; } + + } + /// Tables that will be included and excluded in the follower database + internal partial interface ITableLevelSharingPropertiesInternal + + { + /// List of external tables exclude from the follower database + string[] ExternalTablesToExclude { get; set; } + /// List of external tables to include in the follower database + string[] ExternalTablesToInclude { get; set; } + /// List of materialized views exclude from the follower database + string[] MaterializedViewsToExclude { get; set; } + /// List of materialized views to include in the follower database + string[] MaterializedViewsToInclude { get; set; } + /// List of tables to exclude from the follower database + string[] TablesToExclude { get; set; } + /// List of tables to include in the follower database + string[] TablesToInclude { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/TableLevelSharingProperties.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/TableLevelSharingProperties.json.cs new file mode 100644 index 000000000000..2a7d8d0587bf --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/TableLevelSharingProperties.json.cs @@ -0,0 +1,164 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Tables that will be included and excluded in the follower database + public partial class TableLevelSharingProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITableLevelSharingProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new TableLevelSharingProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal TableLevelSharingProperties(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_tablesToInclude = If( json?.PropertyT("tablesToInclude"), out var __jsonTablesToInclude) ? If( __jsonTablesToInclude as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(string) (__u is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : TablesToInclude;} + {_tablesToExclude = If( json?.PropertyT("tablesToExclude"), out var __jsonTablesToExclude) ? If( __jsonTablesToExclude as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __q) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__q, (__p)=>(string) (__p is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : TablesToExclude;} + {_externalTablesToInclude = If( json?.PropertyT("externalTablesToInclude"), out var __jsonExternalTablesToInclude) ? If( __jsonExternalTablesToInclude as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __l) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__l, (__k)=>(string) (__k is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString __j ? (string)(__j.ToString()) : null)) ))() : null : ExternalTablesToInclude;} + {_externalTablesToExclude = If( json?.PropertyT("externalTablesToExclude"), out var __jsonExternalTablesToExclude) ? If( __jsonExternalTablesToExclude as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __g) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__g, (__f)=>(string) (__f is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString __e ? (string)(__e.ToString()) : null)) ))() : null : ExternalTablesToExclude;} + {_materializedViewsToInclude = If( json?.PropertyT("materializedViewsToInclude"), out var __jsonMaterializedViewsToInclude) ? If( __jsonMaterializedViewsToInclude as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var __b) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__b, (__a)=>(string) (__a is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString ___z ? (string)(___z.ToString()) : null)) ))() : null : MaterializedViewsToInclude;} + {_materializedViewsToExclude = If( json?.PropertyT("materializedViewsToExclude"), out var __jsonMaterializedViewsToExclude) ? If( __jsonMaterializedViewsToExclude as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonArray, out var ___w) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(___w, (___v)=>(string) (___v is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString ___u ? (string)(___u.ToString()) : null)) ))() : null : MaterializedViewsToExclude;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._tablesToInclude) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __x in this._tablesToInclude ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("tablesToInclude",__w); + } + if (null != this._tablesToExclude) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __s in this._tablesToExclude ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("tablesToExclude",__r); + } + if (null != this._externalTablesToInclude) + { + var __m = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __n in this._externalTablesToInclude ) + { + AddIf(null != (((object)__n)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(__n.ToString()) : null ,__m.Add); + } + container.Add("externalTablesToInclude",__m); + } + if (null != this._externalTablesToExclude) + { + var __h = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __i in this._externalTablesToExclude ) + { + AddIf(null != (((object)__i)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(__i.ToString()) : null ,__h.Add); + } + container.Add("externalTablesToExclude",__h); + } + if (null != this._materializedViewsToInclude) + { + var __c = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var __d in this._materializedViewsToInclude ) + { + AddIf(null != (((object)__d)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(__d.ToString()) : null ,__c.Add); + } + container.Add("materializedViewsToInclude",__c); + } + if (null != this._materializedViewsToExclude) + { + var ___x = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.XNodeArray(); + foreach( var ___y in this._materializedViewsToExclude ) + { + AddIf(null != (((object)___y)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(___y.ToString()) : null ,___x.Add); + } + container.Add("materializedViewsToExclude",___x); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/TrustedExternalTenant.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/TrustedExternalTenant.PowerShell.cs new file mode 100644 index 000000000000..b9719647f4f7 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/TrustedExternalTenant.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// Represents a tenant ID that is trusted by the cluster. + [System.ComponentModel.TypeConverter(typeof(TrustedExternalTenantTypeConverter))] + public partial class TrustedExternalTenant + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TrustedExternalTenant(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TrustedExternalTenant(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TrustedExternalTenant(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenantInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenantInternal)this).Value, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal TrustedExternalTenant(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenantInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenantInternal)this).Value, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Represents a tenant ID that is trusted by the cluster. + [System.ComponentModel.TypeConverter(typeof(TrustedExternalTenantTypeConverter))] + public partial interface ITrustedExternalTenant + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/TrustedExternalTenant.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/TrustedExternalTenant.TypeConverter.cs new file mode 100644 index 000000000000..59a11b8c4a46 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/TrustedExternalTenant.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TrustedExternalTenantTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TrustedExternalTenant.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TrustedExternalTenant.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TrustedExternalTenant.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/TrustedExternalTenant.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/TrustedExternalTenant.cs new file mode 100644 index 000000000000..abbafee1fa45 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/TrustedExternalTenant.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Represents a tenant ID that is trusted by the cluster. + public partial class TrustedExternalTenant : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenantInternal + { + + /// Backing field for property. + private string _value; + + /// GUID representing an external tenant. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public TrustedExternalTenant() + { + + } + } + /// Represents a tenant ID that is trusted by the cluster. + public partial interface ITrustedExternalTenant : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// GUID representing an external tenant. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"GUID representing an external tenant.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(string) })] + string Value { get; set; } + + } + /// Represents a tenant ID that is trusted by the cluster. + internal partial interface ITrustedExternalTenantInternal + + { + /// GUID representing an external tenant. + string Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/TrustedExternalTenant.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/TrustedExternalTenant.json.cs new file mode 100644 index 000000000000..10a62a37c0cd --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/TrustedExternalTenant.json.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// Represents a tenant ID that is trusted by the cluster. + public partial class TrustedExternalTenant + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new TrustedExternalTenant(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._value)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._value.ToString()) : null, "value" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal TrustedExternalTenant(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? (string)__jsonValue : (string)Value;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/VirtualNetworkConfiguration.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/VirtualNetworkConfiguration.PowerShell.cs new file mode 100644 index 000000000000..07052ec36875 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/VirtualNetworkConfiguration.PowerShell.cs @@ -0,0 +1,158 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// A class that contains virtual network definition. + [System.ComponentModel.TypeConverter(typeof(VirtualNetworkConfigurationTypeConverter))] + public partial class VirtualNetworkConfiguration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new VirtualNetworkConfiguration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new VirtualNetworkConfiguration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal VirtualNetworkConfiguration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)this).SubnetId = (string) content.GetValueForProperty("SubnetId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)this).SubnetId, global::System.Convert.ToString); + } + if (content.Contains("EnginePublicIPId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)this).EnginePublicIPId = (string) content.GetValueForProperty("EnginePublicIPId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)this).EnginePublicIPId, global::System.Convert.ToString); + } + if (content.Contains("DataManagementPublicIPId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)this).DataManagementPublicIPId = (string) content.GetValueForProperty("DataManagementPublicIPId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)this).DataManagementPublicIPId, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal VirtualNetworkConfiguration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)this).SubnetId = (string) content.GetValueForProperty("SubnetId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)this).SubnetId, global::System.Convert.ToString); + } + if (content.Contains("EnginePublicIPId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)this).EnginePublicIPId = (string) content.GetValueForProperty("EnginePublicIPId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)this).EnginePublicIPId, global::System.Convert.ToString); + } + if (content.Contains("DataManagementPublicIPId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)this).DataManagementPublicIPId = (string) content.GetValueForProperty("DataManagementPublicIPId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal)this).DataManagementPublicIPId, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// A class that contains virtual network definition. + [System.ComponentModel.TypeConverter(typeof(VirtualNetworkConfigurationTypeConverter))] + public partial interface IVirtualNetworkConfiguration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/VirtualNetworkConfiguration.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/VirtualNetworkConfiguration.TypeConverter.cs new file mode 100644 index 000000000000..e884c6a44b98 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/VirtualNetworkConfiguration.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class VirtualNetworkConfigurationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return VirtualNetworkConfiguration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return VirtualNetworkConfiguration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return VirtualNetworkConfiguration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/VirtualNetworkConfiguration.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/VirtualNetworkConfiguration.cs new file mode 100644 index 000000000000..06bd3bb288ef --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/VirtualNetworkConfiguration.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class that contains virtual network definition. + public partial class VirtualNetworkConfiguration : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfigurationInternal + { + + /// Backing field for property. + private string _dataManagementPublicIPId; + + /// Data management's service public IP address resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string DataManagementPublicIPId { get => this._dataManagementPublicIPId; set => this._dataManagementPublicIPId = value; } + + /// Backing field for property. + private string _enginePublicIPId; + + /// Engine service's public IP address resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string EnginePublicIPId { get => this._enginePublicIPId; set => this._enginePublicIPId = value; } + + /// Backing field for property. + private string _subnetId; + + /// The subnet resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string SubnetId { get => this._subnetId; set => this._subnetId = value; } + + /// Creates an new instance. + public VirtualNetworkConfiguration() + { + + } + } + /// A class that contains virtual network definition. + public partial interface IVirtualNetworkConfiguration : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// Data management's service public IP address resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Data management's service public IP address resource id.", + SerializedName = @"dataManagementPublicIpId", + PossibleTypes = new [] { typeof(string) })] + string DataManagementPublicIPId { get; set; } + /// Engine service's public IP address resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Engine service's public IP address resource id.", + SerializedName = @"enginePublicIpId", + PossibleTypes = new [] { typeof(string) })] + string EnginePublicIPId { get; set; } + /// The subnet resource id. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The subnet resource id.", + SerializedName = @"subnetId", + PossibleTypes = new [] { typeof(string) })] + string SubnetId { get; set; } + + } + /// A class that contains virtual network definition. + internal partial interface IVirtualNetworkConfigurationInternal + + { + /// Data management's service public IP address resource id. + string DataManagementPublicIPId { get; set; } + /// Engine service's public IP address resource id. + string EnginePublicIPId { get; set; } + /// The subnet resource id. + string SubnetId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/Api20220201/VirtualNetworkConfiguration.json.cs b/swaggerci/azure-kusto/generated/api/Models/Api20220201/VirtualNetworkConfiguration.json.cs new file mode 100644 index 000000000000..aa3b08b6ae5d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/Api20220201/VirtualNetworkConfiguration.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + /// A class that contains virtual network definition. + public partial class VirtualNetworkConfiguration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IVirtualNetworkConfiguration FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new VirtualNetworkConfiguration(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._subnetId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._subnetId.ToString()) : null, "subnetId" ,container.Add ); + AddIf( null != (((object)this._enginePublicIPId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._enginePublicIPId.ToString()) : null, "enginePublicIpId" ,container.Add ); + AddIf( null != (((object)this._dataManagementPublicIPId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._dataManagementPublicIPId.ToString()) : null, "dataManagementPublicIpId" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal VirtualNetworkConfiguration(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_subnetId = If( json?.PropertyT("subnetId"), out var __jsonSubnetId) ? (string)__jsonSubnetId : (string)SubnetId;} + {_enginePublicIPId = If( json?.PropertyT("enginePublicIpId"), out var __jsonEnginePublicIPId) ? (string)__jsonEnginePublicIPId : (string)EnginePublicIPId;} + {_dataManagementPublicIPId = If( json?.PropertyT("dataManagementPublicIpId"), out var __jsonDataManagementPublicIPId) ? (string)__jsonDataManagementPublicIPId : (string)DataManagementPublicIPId;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/KustoIdentity.PowerShell.cs b/swaggerci/azure-kusto/generated/api/Models/KustoIdentity.PowerShell.cs new file mode 100644 index 000000000000..b77e2c2eaedf --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/KustoIdentity.PowerShell.cs @@ -0,0 +1,244 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(KustoIdentityTypeConverter))] + public partial class KustoIdentity + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new KustoIdentity(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new KustoIdentity(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal KustoIdentity(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).ResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("ClusterName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).ClusterName = (string) content.GetValueForProperty("ClusterName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).ClusterName, global::System.Convert.ToString); + } + if (content.Contains("SubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).SubscriptionId = (string) content.GetValueForProperty("SubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).SubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("PrincipalAssignmentName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).PrincipalAssignmentName = (string) content.GetValueForProperty("PrincipalAssignmentName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).PrincipalAssignmentName, global::System.Convert.ToString); + } + if (content.Contains("DatabaseName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).DatabaseName = (string) content.GetValueForProperty("DatabaseName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).DatabaseName, global::System.Convert.ToString); + } + if (content.Contains("AttachedDatabaseConfigurationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).AttachedDatabaseConfigurationName = (string) content.GetValueForProperty("AttachedDatabaseConfigurationName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).AttachedDatabaseConfigurationName, global::System.Convert.ToString); + } + if (content.Contains("ManagedPrivateEndpointName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).ManagedPrivateEndpointName = (string) content.GetValueForProperty("ManagedPrivateEndpointName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).ManagedPrivateEndpointName, global::System.Convert.ToString); + } + if (content.Contains("ScriptName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).ScriptName = (string) content.GetValueForProperty("ScriptName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).ScriptName, global::System.Convert.ToString); + } + if (content.Contains("PrivateEndpointConnectionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).PrivateEndpointConnectionName = (string) content.GetValueForProperty("PrivateEndpointConnectionName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).PrivateEndpointConnectionName, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkResourceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).PrivateLinkResourceName = (string) content.GetValueForProperty("PrivateLinkResourceName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).PrivateLinkResourceName, global::System.Convert.ToString); + } + if (content.Contains("DataConnectionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).DataConnectionName = (string) content.GetValueForProperty("DataConnectionName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).DataConnectionName, global::System.Convert.ToString); + } + if (content.Contains("OperationId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).OperationId = (string) content.GetValueForProperty("OperationId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).OperationId, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).Id, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal KustoIdentity(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).ResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("ClusterName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).ClusterName = (string) content.GetValueForProperty("ClusterName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).ClusterName, global::System.Convert.ToString); + } + if (content.Contains("SubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).SubscriptionId = (string) content.GetValueForProperty("SubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).SubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("PrincipalAssignmentName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).PrincipalAssignmentName = (string) content.GetValueForProperty("PrincipalAssignmentName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).PrincipalAssignmentName, global::System.Convert.ToString); + } + if (content.Contains("DatabaseName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).DatabaseName = (string) content.GetValueForProperty("DatabaseName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).DatabaseName, global::System.Convert.ToString); + } + if (content.Contains("AttachedDatabaseConfigurationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).AttachedDatabaseConfigurationName = (string) content.GetValueForProperty("AttachedDatabaseConfigurationName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).AttachedDatabaseConfigurationName, global::System.Convert.ToString); + } + if (content.Contains("ManagedPrivateEndpointName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).ManagedPrivateEndpointName = (string) content.GetValueForProperty("ManagedPrivateEndpointName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).ManagedPrivateEndpointName, global::System.Convert.ToString); + } + if (content.Contains("ScriptName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).ScriptName = (string) content.GetValueForProperty("ScriptName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).ScriptName, global::System.Convert.ToString); + } + if (content.Contains("PrivateEndpointConnectionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).PrivateEndpointConnectionName = (string) content.GetValueForProperty("PrivateEndpointConnectionName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).PrivateEndpointConnectionName, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkResourceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).PrivateLinkResourceName = (string) content.GetValueForProperty("PrivateLinkResourceName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).PrivateLinkResourceName, global::System.Convert.ToString); + } + if (content.Contains("DataConnectionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).DataConnectionName = (string) content.GetValueForProperty("DataConnectionName",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).DataConnectionName, global::System.Convert.ToString); + } + if (content.Contains("OperationId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).OperationId = (string) content.GetValueForProperty("OperationId",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).OperationId, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal)this).Id, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(KustoIdentityTypeConverter))] + public partial interface IKustoIdentity + + { + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/KustoIdentity.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Models/KustoIdentity.TypeConverter.cs new file mode 100644 index 000000000000..bf49d43e7667 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/KustoIdentity.TypeConverter.cs @@ -0,0 +1,157 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class KustoIdentityTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + // we allow string conversion too. + if (type == typeof(global::System.String)) + { + return true; + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + // support direct string to id type conversion. + if (type == typeof(global::System.String)) + { + return new KustoIdentity { Id = sourceValue }; + } + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return KustoIdentity.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return KustoIdentity.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return KustoIdentity.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/KustoIdentity.cs b/swaggerci/azure-kusto/generated/api/Models/KustoIdentity.cs new file mode 100644 index 000000000000..a9b7ad5b1334 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/KustoIdentity.cs @@ -0,0 +1,278 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + public partial class KustoIdentity : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentityInternal + { + + /// Backing field for property. + private string _attachedDatabaseConfigurationName; + + /// The name of the attached database configuration. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string AttachedDatabaseConfigurationName { get => this._attachedDatabaseConfigurationName; set => this._attachedDatabaseConfigurationName = value; } + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _dataConnectionName; + + /// The name of the data connection. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string DataConnectionName { get => this._dataConnectionName; set => this._dataConnectionName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// Backing field for property. + private string _id; + + /// Resource identity path + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Id { get => this._id; set => this._id = value; } + + /// Backing field for property. + private string _location; + + /// Azure location (region) name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Backing field for property. + private string _managedPrivateEndpointName; + + /// The name of the managed private endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ManagedPrivateEndpointName { get => this._managedPrivateEndpointName; set => this._managedPrivateEndpointName = value; } + + /// Backing field for property. + private string _operationId; + + /// The Guid of the operation ID + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string OperationId { get => this._operationId; set => this._operationId = value; } + + /// Backing field for property. + private string _principalAssignmentName; + + /// The name of the Kusto principalAssignment. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string PrincipalAssignmentName { get => this._principalAssignmentName; set => this._principalAssignmentName = value; } + + /// Backing field for property. + private string _privateEndpointConnectionName; + + /// The name of the private endpoint connection. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string PrivateEndpointConnectionName { get => this._privateEndpointConnectionName; set => this._privateEndpointConnectionName = value; } + + /// Backing field for property. + private string _privateLinkResourceName; + + /// The name of the private link resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string PrivateLinkResourceName { get => this._privateLinkResourceName; set => this._privateLinkResourceName = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _scriptName; + + /// The name of the Kusto database script. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string ScriptName { get => this._scriptName; set => this._scriptName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Origin(Microsoft.Azure.PowerShell.Cmdlets.Kusto.PropertyOrigin.Owned)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Creates an new instance. + public KustoIdentity() + { + + } + } + public partial interface IKustoIdentity : + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IJsonSerializable + { + /// The name of the attached database configuration. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the attached database configuration.", + SerializedName = @"attachedDatabaseConfigurationName", + PossibleTypes = new [] { typeof(string) })] + string AttachedDatabaseConfigurationName { get; set; } + /// The name of the Kusto cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + string ClusterName { get; set; } + /// The name of the data connection. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the data connection.", + SerializedName = @"dataConnectionName", + PossibleTypes = new [] { typeof(string) })] + string DataConnectionName { get; set; } + /// The name of the database in the Kusto cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + string DatabaseName { get; set; } + /// Resource identity path + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource identity path", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; set; } + /// Azure location (region) name. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure location (region) name.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// The name of the managed private endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the managed private endpoint.", + SerializedName = @"managedPrivateEndpointName", + PossibleTypes = new [] { typeof(string) })] + string ManagedPrivateEndpointName { get; set; } + /// The Guid of the operation ID + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Guid of the operation ID", + SerializedName = @"operationId", + PossibleTypes = new [] { typeof(string) })] + string OperationId { get; set; } + /// The name of the Kusto principalAssignment. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the Kusto principalAssignment.", + SerializedName = @"principalAssignmentName", + PossibleTypes = new [] { typeof(string) })] + string PrincipalAssignmentName { get; set; } + /// The name of the private endpoint connection. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the private endpoint connection.", + SerializedName = @"privateEndpointConnectionName", + PossibleTypes = new [] { typeof(string) })] + string PrivateEndpointConnectionName { get; set; } + /// The name of the private link resource. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the private link resource.", + SerializedName = @"privateLinkResourceName", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkResourceName { get; set; } + /// The name of the resource group containing the Kusto cluster. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + string ResourceGroupName { get; set; } + /// The name of the Kusto database script. + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the Kusto database script.", + SerializedName = @"scriptName", + PossibleTypes = new [] { typeof(string) })] + string ScriptName { get; set; } + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + string SubscriptionId { get; set; } + + } + internal partial interface IKustoIdentityInternal + + { + /// The name of the attached database configuration. + string AttachedDatabaseConfigurationName { get; set; } + /// The name of the Kusto cluster. + string ClusterName { get; set; } + /// The name of the data connection. + string DataConnectionName { get; set; } + /// The name of the database in the Kusto cluster. + string DatabaseName { get; set; } + /// Resource identity path + string Id { get; set; } + /// Azure location (region) name. + string Location { get; set; } + /// The name of the managed private endpoint. + string ManagedPrivateEndpointName { get; set; } + /// The Guid of the operation ID + string OperationId { get; set; } + /// The name of the Kusto principalAssignment. + string PrincipalAssignmentName { get; set; } + /// The name of the private endpoint connection. + string PrivateEndpointConnectionName { get; set; } + /// The name of the private link resource. + string PrivateLinkResourceName { get; set; } + /// The name of the resource group containing the Kusto cluster. + string ResourceGroupName { get; set; } + /// The name of the Kusto database script. + string ScriptName { get; set; } + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + string SubscriptionId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Models/KustoIdentity.json.cs b/swaggerci/azure-kusto/generated/api/Models/KustoIdentity.json.cs new file mode 100644 index 000000000000..34291a4eee65 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Models/KustoIdentity.json.cs @@ -0,0 +1,129 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + + public partial class KustoIdentity + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity. + /// + /// a to deserialize from. + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity. + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity FromJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json ? new KustoIdentity(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject instance to deserialize from. + internal KustoIdentity(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceGroupName = If( json?.PropertyT("resourceGroupName"), out var __jsonResourceGroupName) ? (string)__jsonResourceGroupName : (string)ResourceGroupName;} + {_clusterName = If( json?.PropertyT("clusterName"), out var __jsonClusterName) ? (string)__jsonClusterName : (string)ClusterName;} + {_subscriptionId = If( json?.PropertyT("subscriptionId"), out var __jsonSubscriptionId) ? (string)__jsonSubscriptionId : (string)SubscriptionId;} + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + {_principalAssignmentName = If( json?.PropertyT("principalAssignmentName"), out var __jsonPrincipalAssignmentName) ? (string)__jsonPrincipalAssignmentName : (string)PrincipalAssignmentName;} + {_databaseName = If( json?.PropertyT("databaseName"), out var __jsonDatabaseName) ? (string)__jsonDatabaseName : (string)DatabaseName;} + {_attachedDatabaseConfigurationName = If( json?.PropertyT("attachedDatabaseConfigurationName"), out var __jsonAttachedDatabaseConfigurationName) ? (string)__jsonAttachedDatabaseConfigurationName : (string)AttachedDatabaseConfigurationName;} + {_managedPrivateEndpointName = If( json?.PropertyT("managedPrivateEndpointName"), out var __jsonManagedPrivateEndpointName) ? (string)__jsonManagedPrivateEndpointName : (string)ManagedPrivateEndpointName;} + {_scriptName = If( json?.PropertyT("scriptName"), out var __jsonScriptName) ? (string)__jsonScriptName : (string)ScriptName;} + {_privateEndpointConnectionName = If( json?.PropertyT("privateEndpointConnectionName"), out var __jsonPrivateEndpointConnectionName) ? (string)__jsonPrivateEndpointConnectionName : (string)PrivateEndpointConnectionName;} + {_privateLinkResourceName = If( json?.PropertyT("privateLinkResourceName"), out var __jsonPrivateLinkResourceName) ? (string)__jsonPrivateLinkResourceName : (string)PrivateLinkResourceName;} + {_dataConnectionName = If( json?.PropertyT("dataConnectionName"), out var __jsonDataConnectionName) ? (string)__jsonDataConnectionName : (string)DataConnectionName;} + {_operationId = If( json?.PropertyT("operationId"), out var __jsonOperationId) ? (string)__jsonOperationId : (string)OperationId;} + {_id = If( json?.PropertyT("id"), out var __jsonId) ? (string)__jsonId : (string)Id;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._resourceGroupName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._resourceGroupName.ToString()) : null, "resourceGroupName" ,container.Add ); + AddIf( null != (((object)this._clusterName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._clusterName.ToString()) : null, "clusterName" ,container.Add ); + AddIf( null != (((object)this._subscriptionId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._subscriptionId.ToString()) : null, "subscriptionId" ,container.Add ); + AddIf( null != (((object)this._location)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._location.ToString()) : null, "location" ,container.Add ); + AddIf( null != (((object)this._principalAssignmentName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._principalAssignmentName.ToString()) : null, "principalAssignmentName" ,container.Add ); + AddIf( null != (((object)this._databaseName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._databaseName.ToString()) : null, "databaseName" ,container.Add ); + AddIf( null != (((object)this._attachedDatabaseConfigurationName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._attachedDatabaseConfigurationName.ToString()) : null, "attachedDatabaseConfigurationName" ,container.Add ); + AddIf( null != (((object)this._managedPrivateEndpointName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._managedPrivateEndpointName.ToString()) : null, "managedPrivateEndpointName" ,container.Add ); + AddIf( null != (((object)this._scriptName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._scriptName.ToString()) : null, "scriptName" ,container.Add ); + AddIf( null != (((object)this._privateEndpointConnectionName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._privateEndpointConnectionName.ToString()) : null, "privateEndpointConnectionName" ,container.Add ); + AddIf( null != (((object)this._privateLinkResourceName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._privateLinkResourceName.ToString()) : null, "privateLinkResourceName" ,container.Add ); + AddIf( null != (((object)this._dataConnectionName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._dataConnectionName.ToString()) : null, "dataConnectionName" ,container.Add ); + AddIf( null != (((object)this._operationId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._operationId.ToString()) : null, "operationId" ,container.Add ); + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Json.JsonString(this._id.ToString()) : null, "id" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/AzureScaleType.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/AzureScaleType.Completer.cs new file mode 100644 index 000000000000..6805c3460e0a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/AzureScaleType.Completer.cs @@ -0,0 +1,43 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Scale type. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleTypeTypeConverter))] + public partial struct AzureScaleType : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "automatic".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'automatic'", "automatic", global::System.Management.Automation.CompletionResultType.ParameterValue, "automatic"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "manual".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'manual'", "manual", global::System.Management.Automation.CompletionResultType.ParameterValue, "manual"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "none".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'none'", "none", global::System.Management.Automation.CompletionResultType.ParameterValue, "none"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/AzureScaleType.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/AzureScaleType.TypeConverter.cs new file mode 100644 index 000000000000..f9e08c73aa79 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/AzureScaleType.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Scale type. + public partial class AzureScaleTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => AzureScaleType.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/AzureScaleType.cs b/swaggerci/azure-kusto/generated/api/Support/AzureScaleType.cs new file mode 100644 index 000000000000..90ea05cf6ab7 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/AzureScaleType.cs @@ -0,0 +1,100 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Scale type. + public partial struct AzureScaleType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType Automatic = @"automatic"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType Manual = @"manual"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType None = @"none"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the + /// the value to create an instance for. + private AzureScaleType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to AzureScaleType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new AzureScaleType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type AzureScaleType + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type AzureScaleType (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is AzureScaleType && Equals((AzureScaleType)obj); + } + + /// Returns hashCode for enum AzureScaleType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for AzureScaleType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to AzureScaleType + /// the value to convert to an instance of . + + public static implicit operator AzureScaleType(string value) + { + return new AzureScaleType(value); + } + + /// Implicit operator to convert AzureScaleType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType e) + { + return e._value; + } + + /// Overriding != operator for enum AzureScaleType + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum AzureScaleType + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureScaleType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/AzureSkuName.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/AzureSkuName.Completer.cs new file mode 100644 index 000000000000..74c055621425 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/AzureSkuName.Completer.cs @@ -0,0 +1,207 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// SKU name. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuNameTypeConverter))] + public partial struct AzureSkuName : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Dev(No SLA)_Standard_D11_v2".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Dev(No SLA)_Standard_D11_v2'", "Dev(No SLA)_Standard_D11_v2", global::System.Management.Automation.CompletionResultType.ParameterValue, "Dev(No SLA)_Standard_D11_v2"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Dev(No SLA)_Standard_E2a_v4".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Dev(No SLA)_Standard_E2a_v4'", "Dev(No SLA)_Standard_E2a_v4", global::System.Management.Automation.CompletionResultType.ParameterValue, "Dev(No SLA)_Standard_E2a_v4"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_D11_v2".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_D11_v2'", "Standard_D11_v2", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_D11_v2"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_D12_v2".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_D12_v2'", "Standard_D12_v2", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_D12_v2"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_D13_v2".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_D13_v2'", "Standard_D13_v2", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_D13_v2"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_D14_v2".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_D14_v2'", "Standard_D14_v2", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_D14_v2"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_D32d_v4".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_D32d_v4'", "Standard_D32d_v4", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_D32d_v4"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_D16d_v5".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_D16d_v5'", "Standard_D16d_v5", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_D16d_v5"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_D32d_v5".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_D32d_v5'", "Standard_D32d_v5", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_D32d_v5"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_DS13_v2+1TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_DS13_v2+1TB_PS'", "Standard_DS13_v2+1TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_DS13_v2+1TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_DS13_v2+2TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_DS13_v2+2TB_PS'", "Standard_DS13_v2+2TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_DS13_v2+2TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_DS14_v2+3TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_DS14_v2+3TB_PS'", "Standard_DS14_v2+3TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_DS14_v2+3TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_DS14_v2+4TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_DS14_v2+4TB_PS'", "Standard_DS14_v2+4TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_DS14_v2+4TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_L4s".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_L4s'", "Standard_L4s", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_L4s"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_L8s".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_L8s'", "Standard_L8s", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_L8s"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_L16s".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_L16s'", "Standard_L16s", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_L16s"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_L8s_v2".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_L8s_v2'", "Standard_L8s_v2", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_L8s_v2"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_L16s_v2".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_L16s_v2'", "Standard_L16s_v2", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_L16s_v2"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E64i_v3".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E64i_v3'", "Standard_E64i_v3", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E64i_v3"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E80ids_v4".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E80ids_v4'", "Standard_E80ids_v4", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E80ids_v4"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E2a_v4".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E2a_v4'", "Standard_E2a_v4", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E2a_v4"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E4a_v4".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E4a_v4'", "Standard_E4a_v4", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E4a_v4"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E8a_v4".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E8a_v4'", "Standard_E8a_v4", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E8a_v4"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E16a_v4".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E16a_v4'", "Standard_E16a_v4", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E16a_v4"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E8as_v4+1TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E8as_v4+1TB_PS'", "Standard_E8as_v4+1TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E8as_v4+1TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E8as_v4+2TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E8as_v4+2TB_PS'", "Standard_E8as_v4+2TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E8as_v4+2TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E16as_v4+3TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E16as_v4+3TB_PS'", "Standard_E16as_v4+3TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E16as_v4+3TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E16as_v4+4TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E16as_v4+4TB_PS'", "Standard_E16as_v4+4TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E16as_v4+4TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E8as_v5+1TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E8as_v5+1TB_PS'", "Standard_E8as_v5+1TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E8as_v5+1TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E8as_v5+2TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E8as_v5+2TB_PS'", "Standard_E8as_v5+2TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E8as_v5+2TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E16as_v5+3TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E16as_v5+3TB_PS'", "Standard_E16as_v5+3TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E16as_v5+3TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E16as_v5+4TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E16as_v5+4TB_PS'", "Standard_E16as_v5+4TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E16as_v5+4TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E2ads_v5".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E2ads_v5'", "Standard_E2ads_v5", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E2ads_v5"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E4ads_v5".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E4ads_v5'", "Standard_E4ads_v5", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E4ads_v5"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E8ads_v5".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E8ads_v5'", "Standard_E8ads_v5", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E8ads_v5"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E16ads_v5".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E16ads_v5'", "Standard_E16ads_v5", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E16ads_v5"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E8s_v4+1TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E8s_v4+1TB_PS'", "Standard_E8s_v4+1TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E8s_v4+1TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E8s_v4+2TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E8s_v4+2TB_PS'", "Standard_E8s_v4+2TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E8s_v4+2TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E16s_v4+3TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E16s_v4+3TB_PS'", "Standard_E16s_v4+3TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E16s_v4+3TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E16s_v4+4TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E16s_v4+4TB_PS'", "Standard_E16s_v4+4TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E16s_v4+4TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E8s_v5+1TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E8s_v5+1TB_PS'", "Standard_E8s_v5+1TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E8s_v5+1TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E8s_v5+2TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E8s_v5+2TB_PS'", "Standard_E8s_v5+2TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E8s_v5+2TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E16s_v5+3TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E16s_v5+3TB_PS'", "Standard_E16s_v5+3TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E16s_v5+3TB_PS"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard_E16s_v5+4TB_PS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard_E16s_v5+4TB_PS'", "Standard_E16s_v5+4TB_PS", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard_E16s_v5+4TB_PS"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/AzureSkuName.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/AzureSkuName.TypeConverter.cs new file mode 100644 index 000000000000..253d25180fa0 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/AzureSkuName.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// SKU name. + public partial class AzureSkuNameTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => AzureSkuName.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/AzureSkuName.cs b/swaggerci/azure-kusto/generated/api/Support/AzureSkuName.cs new file mode 100644 index 000000000000..fce5b95e4543 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/AzureSkuName.cs @@ -0,0 +1,182 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// SKU name. + public partial struct AzureSkuName : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName DevNoSlaStandardD11V2 = @"Dev(No SLA)_Standard_D11_v2"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName DevNoSlaStandardE2AV4 = @"Dev(No SLA)_Standard_E2a_v4"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardD11V2 = @"Standard_D11_v2"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardD12V2 = @"Standard_D12_v2"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardD13V2 = @"Standard_D13_v2"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardD14V2 = @"Standard_D14_v2"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardD16DV5 = @"Standard_D16d_v5"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardD32DV4 = @"Standard_D32d_v4"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardD32DV5 = @"Standard_D32d_v5"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardDs13V21TbPs = @"Standard_DS13_v2+1TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardDs13V22TbPs = @"Standard_DS13_v2+2TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardDs14V23TbPs = @"Standard_DS14_v2+3TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardDs14V24TbPs = @"Standard_DS14_v2+4TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE16AV4 = @"Standard_E16a_v4"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE16AdsV5 = @"Standard_E16ads_v5"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE16AsV43TbPs = @"Standard_E16as_v4+3TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE16AsV44TbPs = @"Standard_E16as_v4+4TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE16AsV53TbPs = @"Standard_E16as_v5+3TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE16AsV54TbPs = @"Standard_E16as_v5+4TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE16SV43TbPs = @"Standard_E16s_v4+3TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE16SV44TbPs = @"Standard_E16s_v4+4TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE16SV53TbPs = @"Standard_E16s_v5+3TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE16SV54TbPs = @"Standard_E16s_v5+4TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE2AV4 = @"Standard_E2a_v4"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE2AdsV5 = @"Standard_E2ads_v5"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE4AV4 = @"Standard_E4a_v4"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE4AdsV5 = @"Standard_E4ads_v5"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE64IV3 = @"Standard_E64i_v3"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE80IdsV4 = @"Standard_E80ids_v4"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE8AV4 = @"Standard_E8a_v4"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE8AdsV5 = @"Standard_E8ads_v5"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE8AsV41TbPs = @"Standard_E8as_v4+1TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE8AsV42TbPs = @"Standard_E8as_v4+2TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE8AsV51TbPs = @"Standard_E8as_v5+1TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE8AsV52TbPs = @"Standard_E8as_v5+2TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE8SV41TbPs = @"Standard_E8s_v4+1TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE8SV42TbPs = @"Standard_E8s_v4+2TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE8SV51TbPs = @"Standard_E8s_v5+1TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardE8SV52TbPs = @"Standard_E8s_v5+2TB_PS"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardL16S = @"Standard_L16s"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardL16SV2 = @"Standard_L16s_v2"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardL4S = @"Standard_L4s"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardL8S = @"Standard_L8s"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName StandardL8SV2 = @"Standard_L8s_v2"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the + /// the value to create an instance for. + private AzureSkuName(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to AzureSkuName + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new AzureSkuName(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type AzureSkuName + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type AzureSkuName (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is AzureSkuName && Equals((AzureSkuName)obj); + } + + /// Returns hashCode for enum AzureSkuName + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for AzureSkuName + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to AzureSkuName + /// the value to convert to an instance of . + + public static implicit operator AzureSkuName(string value) + { + return new AzureSkuName(value); + } + + /// Implicit operator to convert AzureSkuName to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName e) + { + return e._value; + } + + /// Overriding != operator for enum AzureSkuName + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum AzureSkuName + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/AzureSkuTier.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/AzureSkuTier.Completer.cs new file mode 100644 index 000000000000..55564d408581 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/AzureSkuTier.Completer.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// SKU tier. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTierTypeConverter))] + public partial struct AzureSkuTier : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Basic".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Basic'", "Basic", global::System.Management.Automation.CompletionResultType.ParameterValue, "Basic"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Standard".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Standard'", "Standard", global::System.Management.Automation.CompletionResultType.ParameterValue, "Standard"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/AzureSkuTier.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/AzureSkuTier.TypeConverter.cs new file mode 100644 index 000000000000..80ada55f16d9 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/AzureSkuTier.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// SKU tier. + public partial class AzureSkuTierTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => AzureSkuTier.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/AzureSkuTier.cs b/swaggerci/azure-kusto/generated/api/Support/AzureSkuTier.cs new file mode 100644 index 000000000000..03078a33f5a8 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/AzureSkuTier.cs @@ -0,0 +1,98 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// SKU tier. + public partial struct AzureSkuTier : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier Basic = @"Basic"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier Standard = @"Standard"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the + /// the value to create an instance for. + private AzureSkuTier(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to AzureSkuTier + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new AzureSkuTier(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type AzureSkuTier + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type AzureSkuTier (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is AzureSkuTier && Equals((AzureSkuTier)obj); + } + + /// Returns hashCode for enum AzureSkuTier + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for AzureSkuTier + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to AzureSkuTier + /// the value to convert to an instance of . + + public static implicit operator AzureSkuTier(string value) + { + return new AzureSkuTier(value); + } + + /// Implicit operator to convert AzureSkuTier to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier e) + { + return e._value; + } + + /// Overriding != operator for enum AzureSkuTier + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum AzureSkuTier + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/BlobStorageEventType.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/BlobStorageEventType.Completer.cs new file mode 100644 index 000000000000..c39e52a71738 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/BlobStorageEventType.Completer.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The name of blob storage event type to process. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventTypeTypeConverter))] + public partial struct BlobStorageEventType : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Microsoft.Storage.BlobCreated".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Microsoft.Storage.BlobCreated'", "Microsoft.Storage.BlobCreated", global::System.Management.Automation.CompletionResultType.ParameterValue, "Microsoft.Storage.BlobCreated"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Microsoft.Storage.BlobRenamed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Microsoft.Storage.BlobRenamed'", "Microsoft.Storage.BlobRenamed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Microsoft.Storage.BlobRenamed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/BlobStorageEventType.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/BlobStorageEventType.TypeConverter.cs new file mode 100644 index 000000000000..ff4d8e0a5205 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/BlobStorageEventType.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The name of blob storage event type to process. + public partial class BlobStorageEventTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => BlobStorageEventType.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/BlobStorageEventType.cs b/swaggerci/azure-kusto/generated/api/Support/BlobStorageEventType.cs new file mode 100644 index 000000000000..ac525d187021 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/BlobStorageEventType.cs @@ -0,0 +1,98 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The name of blob storage event type to process. + public partial struct BlobStorageEventType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType MicrosoftStorageBlobCreated = @"Microsoft.Storage.BlobCreated"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType MicrosoftStorageBlobRenamed = @"Microsoft.Storage.BlobRenamed"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the + /// the value to create an instance for. + private BlobStorageEventType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to BlobStorageEventType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new BlobStorageEventType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type BlobStorageEventType + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type BlobStorageEventType (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is BlobStorageEventType && Equals((BlobStorageEventType)obj); + } + + /// Returns hashCode for enum BlobStorageEventType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for BlobStorageEventType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to BlobStorageEventType + /// the value to convert to an instance of . + + public static implicit operator BlobStorageEventType(string value) + { + return new BlobStorageEventType(value); + } + + /// Implicit operator to convert BlobStorageEventType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType e) + { + return e._value; + } + + /// Overriding != operator for enum BlobStorageEventType + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum BlobStorageEventType + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.BlobStorageEventType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/ClusterNetworkAccessFlag.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/ClusterNetworkAccessFlag.Completer.cs new file mode 100644 index 000000000000..d32afe36b916 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/ClusterNetworkAccessFlag.Completer.cs @@ -0,0 +1,41 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled' + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlagTypeConverter))] + public partial struct ClusterNetworkAccessFlag : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Enabled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Enabled'", "Enabled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Enabled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Disabled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Disabled'", "Disabled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Disabled"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/ClusterNetworkAccessFlag.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/ClusterNetworkAccessFlag.TypeConverter.cs new file mode 100644 index 000000000000..9a77ec5df89b --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/ClusterNetworkAccessFlag.TypeConverter.cs @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled' + /// + public partial class ClusterNetworkAccessFlagTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ClusterNetworkAccessFlag.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/ClusterNetworkAccessFlag.cs b/swaggerci/azure-kusto/generated/api/Support/ClusterNetworkAccessFlag.cs new file mode 100644 index 000000000000..296be0a0532b --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/ClusterNetworkAccessFlag.cs @@ -0,0 +1,100 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled' + /// + public partial struct ClusterNetworkAccessFlag : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag Disabled = @"Disabled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag Enabled = @"Enabled"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the + /// the value to create an instance for. + private ClusterNetworkAccessFlag(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to ClusterNetworkAccessFlag + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ClusterNetworkAccessFlag(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ClusterNetworkAccessFlag + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ClusterNetworkAccessFlag (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is ClusterNetworkAccessFlag && Equals((ClusterNetworkAccessFlag)obj); + } + + /// Returns hashCode for enum ClusterNetworkAccessFlag + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ClusterNetworkAccessFlag + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ClusterNetworkAccessFlag + /// the value to convert to an instance of . + + public static implicit operator ClusterNetworkAccessFlag(string value) + { + return new ClusterNetworkAccessFlag(value); + } + + /// Implicit operator to convert ClusterNetworkAccessFlag to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag e) + { + return e._value; + } + + /// Overriding != operator for enum ClusterNetworkAccessFlag + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ClusterNetworkAccessFlag + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/ClusterPrincipalRole.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/ClusterPrincipalRole.Completer.cs new file mode 100644 index 000000000000..255f419b7d76 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/ClusterPrincipalRole.Completer.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Cluster principal role. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRoleTypeConverter))] + public partial struct ClusterPrincipalRole : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "AllDatabasesAdmin".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'AllDatabasesAdmin'", "AllDatabasesAdmin", global::System.Management.Automation.CompletionResultType.ParameterValue, "AllDatabasesAdmin"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "AllDatabasesViewer".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'AllDatabasesViewer'", "AllDatabasesViewer", global::System.Management.Automation.CompletionResultType.ParameterValue, "AllDatabasesViewer"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/ClusterPrincipalRole.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/ClusterPrincipalRole.TypeConverter.cs new file mode 100644 index 000000000000..5970d8af47b6 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/ClusterPrincipalRole.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Cluster principal role. + public partial class ClusterPrincipalRoleTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ClusterPrincipalRole.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/ClusterPrincipalRole.cs b/swaggerci/azure-kusto/generated/api/Support/ClusterPrincipalRole.cs new file mode 100644 index 000000000000..7fa960ad517f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/ClusterPrincipalRole.cs @@ -0,0 +1,98 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Cluster principal role. + public partial struct ClusterPrincipalRole : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole AllDatabasesAdmin = @"AllDatabasesAdmin"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole AllDatabasesViewer = @"AllDatabasesViewer"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the + /// the value to create an instance for. + private ClusterPrincipalRole(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to ClusterPrincipalRole + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ClusterPrincipalRole(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ClusterPrincipalRole + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ClusterPrincipalRole (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is ClusterPrincipalRole && Equals((ClusterPrincipalRole)obj); + } + + /// Returns hashCode for enum ClusterPrincipalRole + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ClusterPrincipalRole + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ClusterPrincipalRole + /// the value to convert to an instance of . + + public static implicit operator ClusterPrincipalRole(string value) + { + return new ClusterPrincipalRole(value); + } + + /// Implicit operator to convert ClusterPrincipalRole to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole e) + { + return e._value; + } + + /// Overriding != operator for enum ClusterPrincipalRole + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ClusterPrincipalRole + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/Compression.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/Compression.Completer.cs new file mode 100644 index 000000000000..ba8645b47bff --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/Compression.Completer.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The compression type + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CompressionTypeConverter))] + public partial struct Compression : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "None".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'None'", "None", global::System.Management.Automation.CompletionResultType.ParameterValue, "None"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "GZip".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'GZip'", "GZip", global::System.Management.Automation.CompletionResultType.ParameterValue, "GZip"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/Compression.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/Compression.TypeConverter.cs new file mode 100644 index 000000000000..bb90d1c80781 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/Compression.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The compression type + public partial class CompressionTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => Compression.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/Compression.cs b/swaggerci/azure-kusto/generated/api/Support/Compression.cs new file mode 100644 index 000000000000..8d2047bdcfcf --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/Compression.cs @@ -0,0 +1,98 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The compression type + public partial struct Compression : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression GZip = @"GZip"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression None = @"None"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the + /// the value to create an instance for. + private Compression(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to Compression + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new Compression(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type Compression + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type Compression (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is Compression && Equals((Compression)obj); + } + + /// Returns hashCode for enum Compression + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for Compression + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to Compression + /// the value to convert to an instance of . + + public static implicit operator Compression(string value) + { + return new Compression(value); + } + + /// Implicit operator to convert Compression to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression e) + { + return e._value; + } + + /// Overriding != operator for enum Compression + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum Compression + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Compression e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/CreatedByType.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/CreatedByType.Completer.cs new file mode 100644 index 000000000000..46c6dd350c8f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/CreatedByType.Completer.cs @@ -0,0 +1,47 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The type of identity that created the resource. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByTypeTypeConverter))] + public partial struct CreatedByType : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "User".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'User'", "User", global::System.Management.Automation.CompletionResultType.ParameterValue, "User"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Application".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Application'", "Application", global::System.Management.Automation.CompletionResultType.ParameterValue, "Application"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ManagedIdentity".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ManagedIdentity'", "ManagedIdentity", global::System.Management.Automation.CompletionResultType.ParameterValue, "ManagedIdentity"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Key".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Key'", "Key", global::System.Management.Automation.CompletionResultType.ParameterValue, "Key"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/CreatedByType.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/CreatedByType.TypeConverter.cs new file mode 100644 index 000000000000..3ca2e2963e25 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/CreatedByType.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The type of identity that created the resource. + public partial class CreatedByTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => CreatedByType.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/CreatedByType.cs b/swaggerci/azure-kusto/generated/api/Support/CreatedByType.cs new file mode 100644 index 000000000000..982fa27c9bcc --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/CreatedByType.cs @@ -0,0 +1,102 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The type of identity that created the resource. + public partial struct CreatedByType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType Application = @"Application"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType Key = @"Key"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType ManagedIdentity = @"ManagedIdentity"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType User = @"User"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to CreatedByType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new CreatedByType(global::System.Convert.ToString(value)); + } + + /// Creates an instance of the + /// the value to create an instance for. + private CreatedByType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type CreatedByType + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type CreatedByType (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is CreatedByType && Equals((CreatedByType)obj); + } + + /// Returns hashCode for enum CreatedByType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for CreatedByType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to CreatedByType + /// the value to convert to an instance of . + + public static implicit operator CreatedByType(string value) + { + return new CreatedByType(value); + } + + /// Implicit operator to convert CreatedByType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType e) + { + return e._value; + } + + /// Overriding != operator for enum CreatedByType + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum CreatedByType + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.CreatedByType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/DataConnectionKind.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/DataConnectionKind.Completer.cs new file mode 100644 index 000000000000..9a6836c6069a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/DataConnectionKind.Completer.cs @@ -0,0 +1,43 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Kind of the endpoint for the data connection + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKindTypeConverter))] + public partial struct DataConnectionKind : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "EventHub".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'EventHub'", "EventHub", global::System.Management.Automation.CompletionResultType.ParameterValue, "EventHub"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "EventGrid".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'EventGrid'", "EventGrid", global::System.Management.Automation.CompletionResultType.ParameterValue, "EventGrid"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "IotHub".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'IotHub'", "IotHub", global::System.Management.Automation.CompletionResultType.ParameterValue, "IotHub"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/DataConnectionKind.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/DataConnectionKind.TypeConverter.cs new file mode 100644 index 000000000000..07e37a15e3e8 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/DataConnectionKind.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Kind of the endpoint for the data connection + public partial class DataConnectionKindTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => DataConnectionKind.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/DataConnectionKind.cs b/swaggerci/azure-kusto/generated/api/Support/DataConnectionKind.cs new file mode 100644 index 000000000000..422e540a0967 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/DataConnectionKind.cs @@ -0,0 +1,100 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Kind of the endpoint for the data connection + public partial struct DataConnectionKind : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind EventGrid = @"EventGrid"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind EventHub = @"EventHub"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind IotHub = @"IotHub"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to DataConnectionKind + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new DataConnectionKind(global::System.Convert.ToString(value)); + } + + /// Creates an instance of the + /// the value to create an instance for. + private DataConnectionKind(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type DataConnectionKind + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type DataConnectionKind (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is DataConnectionKind && Equals((DataConnectionKind)obj); + } + + /// Returns hashCode for enum DataConnectionKind + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for DataConnectionKind + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to DataConnectionKind + /// the value to convert to an instance of . + + public static implicit operator DataConnectionKind(string value) + { + return new DataConnectionKind(value); + } + + /// Implicit operator to convert DataConnectionKind to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind e) + { + return e._value; + } + + /// Overriding != operator for enum DataConnectionKind + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum DataConnectionKind + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalRole.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalRole.Completer.cs new file mode 100644 index 000000000000..2b6070c94efa --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalRole.Completer.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Database principal role. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRoleTypeConverter))] + public partial struct DatabasePrincipalRole : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Admin".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Admin'", "Admin", global::System.Management.Automation.CompletionResultType.ParameterValue, "Admin"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Ingestor".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Ingestor'", "Ingestor", global::System.Management.Automation.CompletionResultType.ParameterValue, "Ingestor"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Monitor".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Monitor'", "Monitor", global::System.Management.Automation.CompletionResultType.ParameterValue, "Monitor"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "User".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'User'", "User", global::System.Management.Automation.CompletionResultType.ParameterValue, "User"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "UnrestrictedViewer".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'UnrestrictedViewer'", "UnrestrictedViewer", global::System.Management.Automation.CompletionResultType.ParameterValue, "UnrestrictedViewer"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Viewer".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Viewer'", "Viewer", global::System.Management.Automation.CompletionResultType.ParameterValue, "Viewer"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalRole.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalRole.TypeConverter.cs new file mode 100644 index 000000000000..1bfd53cddcd2 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalRole.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Database principal role. + public partial class DatabasePrincipalRoleTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => DatabasePrincipalRole.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalRole.cs b/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalRole.cs new file mode 100644 index 000000000000..746bd24b4be3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalRole.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Database principal role. + public partial struct DatabasePrincipalRole : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole Admin = @"Admin"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole Ingestor = @"Ingestor"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole Monitor = @"Monitor"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole UnrestrictedViewer = @"UnrestrictedViewer"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole User = @"User"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole Viewer = @"Viewer"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to DatabasePrincipalRole + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new DatabasePrincipalRole(global::System.Convert.ToString(value)); + } + + /// Creates an instance of the + /// the value to create an instance for. + private DatabasePrincipalRole(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type DatabasePrincipalRole + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type DatabasePrincipalRole (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is DatabasePrincipalRole && Equals((DatabasePrincipalRole)obj); + } + + /// Returns hashCode for enum DatabasePrincipalRole + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for DatabasePrincipalRole + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to DatabasePrincipalRole + /// the value to convert to an instance of . + + public static implicit operator DatabasePrincipalRole(string value) + { + return new DatabasePrincipalRole(value); + } + + /// Implicit operator to convert DatabasePrincipalRole to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole e) + { + return e._value; + } + + /// Overriding != operator for enum DatabasePrincipalRole + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum DatabasePrincipalRole + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalType.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalType.Completer.cs new file mode 100644 index 000000000000..74d815d7c94e --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalType.Completer.cs @@ -0,0 +1,43 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Database principal type. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalTypeTypeConverter))] + public partial struct DatabasePrincipalType : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "App".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'App'", "App", global::System.Management.Automation.CompletionResultType.ParameterValue, "App"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Group".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Group'", "Group", global::System.Management.Automation.CompletionResultType.ParameterValue, "Group"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "User".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'User'", "User", global::System.Management.Automation.CompletionResultType.ParameterValue, "User"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalType.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalType.TypeConverter.cs new file mode 100644 index 000000000000..76749870dce8 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalType.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Database principal type. + public partial class DatabasePrincipalTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => DatabasePrincipalType.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalType.cs b/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalType.cs new file mode 100644 index 000000000000..2f25d3aef586 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/DatabasePrincipalType.cs @@ -0,0 +1,100 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Database principal type. + public partial struct DatabasePrincipalType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType App = @"App"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType Group = @"Group"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType User = @"User"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to DatabasePrincipalType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new DatabasePrincipalType(global::System.Convert.ToString(value)); + } + + /// Creates an instance of the + /// the value to create an instance for. + private DatabasePrincipalType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type DatabasePrincipalType + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type DatabasePrincipalType (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is DatabasePrincipalType && Equals((DatabasePrincipalType)obj); + } + + /// Returns hashCode for enum DatabasePrincipalType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for DatabasePrincipalType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to DatabasePrincipalType + /// the value to convert to an instance of . + + public static implicit operator DatabasePrincipalType(string value) + { + return new DatabasePrincipalType(value); + } + + /// Implicit operator to convert DatabasePrincipalType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType e) + { + return e._value; + } + + /// Overriding != operator for enum DatabasePrincipalType + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum DatabasePrincipalType + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/DatabaseRouting.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/DatabaseRouting.Completer.cs new file mode 100644 index 000000000000..ec38cb6b1bfa --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/DatabaseRouting.Completer.cs @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRoutingTypeConverter))] + public partial struct DatabaseRouting : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Single".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Single'", "Single", global::System.Management.Automation.CompletionResultType.ParameterValue, "Single"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Multi".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Multi'", "Multi", global::System.Management.Automation.CompletionResultType.ParameterValue, "Multi"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/DatabaseRouting.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/DatabaseRouting.TypeConverter.cs new file mode 100644 index 000000000000..a6e6bf3f9d94 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/DatabaseRouting.TypeConverter.cs @@ -0,0 +1,62 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + public partial class DatabaseRoutingTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => DatabaseRouting.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/DatabaseRouting.cs b/swaggerci/azure-kusto/generated/api/Support/DatabaseRouting.cs new file mode 100644 index 000000000000..ea43fc3a9f91 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/DatabaseRouting.cs @@ -0,0 +1,101 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// Indication for database routing information from the data connection, by default only database routing information is + /// allowed + /// + public partial struct DatabaseRouting : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting Multi = @"Multi"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting Single = @"Single"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to DatabaseRouting + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new DatabaseRouting(global::System.Convert.ToString(value)); + } + + /// Creates an instance of the + /// the value to create an instance for. + private DatabaseRouting(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type DatabaseRouting + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type DatabaseRouting (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is DatabaseRouting && Equals((DatabaseRouting)obj); + } + + /// Returns hashCode for enum DatabaseRouting + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for DatabaseRouting + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to DatabaseRouting + /// the value to convert to an instance of . + + public static implicit operator DatabaseRouting(string value) + { + return new DatabaseRouting(value); + } + + /// Implicit operator to convert DatabaseRouting to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting e) + { + return e._value; + } + + /// Overriding != operator for enum DatabaseRouting + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum DatabaseRouting + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabaseRouting e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/DefaultPrincipalsModificationKind.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/DefaultPrincipalsModificationKind.Completer.cs new file mode 100644 index 000000000000..841fc0609c2b --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/DefaultPrincipalsModificationKind.Completer.cs @@ -0,0 +1,43 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The default principals modification kind + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKindTypeConverter))] + public partial struct DefaultPrincipalsModificationKind : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Union".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Union'", "Union", global::System.Management.Automation.CompletionResultType.ParameterValue, "Union"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Replace".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Replace'", "Replace", global::System.Management.Automation.CompletionResultType.ParameterValue, "Replace"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "None".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'None'", "None", global::System.Management.Automation.CompletionResultType.ParameterValue, "None"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/DefaultPrincipalsModificationKind.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/DefaultPrincipalsModificationKind.TypeConverter.cs new file mode 100644 index 000000000000..003defd82e2a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/DefaultPrincipalsModificationKind.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The default principals modification kind + public partial class DefaultPrincipalsModificationKindTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => DefaultPrincipalsModificationKind.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/DefaultPrincipalsModificationKind.cs b/swaggerci/azure-kusto/generated/api/Support/DefaultPrincipalsModificationKind.cs new file mode 100644 index 000000000000..5a498d205e69 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/DefaultPrincipalsModificationKind.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The default principals modification kind + public partial struct DefaultPrincipalsModificationKind : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind None = @"None"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind Replace = @"Replace"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind Union = @"Union"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to DefaultPrincipalsModificationKind + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new DefaultPrincipalsModificationKind(global::System.Convert.ToString(value)); + } + + /// + /// Creates an instance of the + /// + /// the value to create an instance for. + private DefaultPrincipalsModificationKind(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type DefaultPrincipalsModificationKind + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type DefaultPrincipalsModificationKind (override for Object) + /// + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is DefaultPrincipalsModificationKind && Equals((DefaultPrincipalsModificationKind)obj); + } + + /// Returns hashCode for enum DefaultPrincipalsModificationKind + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for DefaultPrincipalsModificationKind + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to DefaultPrincipalsModificationKind + /// the value to convert to an instance of . + + public static implicit operator DefaultPrincipalsModificationKind(string value) + { + return new DefaultPrincipalsModificationKind(value); + } + + /// Implicit operator to convert DefaultPrincipalsModificationKind to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind e) + { + return e._value; + } + + /// Overriding != operator for enum DefaultPrincipalsModificationKind + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum DefaultPrincipalsModificationKind + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/EngineType.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/EngineType.Completer.cs new file mode 100644 index 000000000000..df8bfe3c4386 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/EngineType.Completer.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The engine type + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineTypeTypeConverter))] + public partial struct EngineType : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "V2".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'V2'", "V2", global::System.Management.Automation.CompletionResultType.ParameterValue, "V2"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "V3".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'V3'", "V3", global::System.Management.Automation.CompletionResultType.ParameterValue, "V3"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/EngineType.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/EngineType.TypeConverter.cs new file mode 100644 index 000000000000..6c3e9ab708b7 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/EngineType.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The engine type + public partial class EngineTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => EngineType.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/EngineType.cs b/swaggerci/azure-kusto/generated/api/Support/EngineType.cs new file mode 100644 index 000000000000..5a5bc35a7e45 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/EngineType.cs @@ -0,0 +1,98 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The engine type + public partial struct EngineType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType V2 = @"V2"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType V3 = @"V3"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to EngineType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new EngineType(global::System.Convert.ToString(value)); + } + + /// Creates an instance of the + /// the value to create an instance for. + private EngineType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type EngineType + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type EngineType (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is EngineType && Equals((EngineType)obj); + } + + /// Returns hashCode for enum EngineType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for EngineType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to EngineType + /// the value to convert to an instance of . + + public static implicit operator EngineType(string value) + { + return new EngineType(value); + } + + /// Implicit operator to convert EngineType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType e) + { + return e._value; + } + + /// Overriding != operator for enum EngineType + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum EngineType + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/EventGridDataFormat.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/EventGridDataFormat.Completer.cs new file mode 100644 index 000000000000..e7175d61fa18 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/EventGridDataFormat.Completer.cs @@ -0,0 +1,97 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormatTypeConverter))] + public partial struct EventGridDataFormat : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "MULTIJSON".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'MULTIJSON'", "MULTIJSON", global::System.Management.Automation.CompletionResultType.ParameterValue, "MULTIJSON"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "JSON".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'JSON'", "JSON", global::System.Management.Automation.CompletionResultType.ParameterValue, "JSON"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "CSV".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'CSV'", "CSV", global::System.Management.Automation.CompletionResultType.ParameterValue, "CSV"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "TSV".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'TSV'", "TSV", global::System.Management.Automation.CompletionResultType.ParameterValue, "TSV"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SCSV".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'SCSV'", "SCSV", global::System.Management.Automation.CompletionResultType.ParameterValue, "SCSV"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SOHSV".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'SOHSV'", "SOHSV", global::System.Management.Automation.CompletionResultType.ParameterValue, "SOHSV"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "PSV".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'PSV'", "PSV", global::System.Management.Automation.CompletionResultType.ParameterValue, "PSV"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "TXT".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'TXT'", "TXT", global::System.Management.Automation.CompletionResultType.ParameterValue, "TXT"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "RAW".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'RAW'", "RAW", global::System.Management.Automation.CompletionResultType.ParameterValue, "RAW"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SINGLEJSON".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'SINGLEJSON'", "SINGLEJSON", global::System.Management.Automation.CompletionResultType.ParameterValue, "SINGLEJSON"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "AVRO".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'AVRO'", "AVRO", global::System.Management.Automation.CompletionResultType.ParameterValue, "AVRO"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "TSVE".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'TSVE'", "TSVE", global::System.Management.Automation.CompletionResultType.ParameterValue, "TSVE"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "PARQUET".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'PARQUET'", "PARQUET", global::System.Management.Automation.CompletionResultType.ParameterValue, "PARQUET"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ORC".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ORC'", "ORC", global::System.Management.Automation.CompletionResultType.ParameterValue, "ORC"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "APACHEAVRO".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'APACHEAVRO'", "APACHEAVRO", global::System.Management.Automation.CompletionResultType.ParameterValue, "APACHEAVRO"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "W3CLOGFILE".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'W3CLOGFILE'", "W3CLOGFILE", global::System.Management.Automation.CompletionResultType.ParameterValue, "W3CLOGFILE"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/EventGridDataFormat.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/EventGridDataFormat.TypeConverter.cs new file mode 100644 index 000000000000..beda52d166dc --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/EventGridDataFormat.TypeConverter.cs @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + public partial class EventGridDataFormatTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => EventGridDataFormat.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/EventGridDataFormat.cs b/swaggerci/azure-kusto/generated/api/Support/EventGridDataFormat.cs new file mode 100644 index 000000000000..f9cdd9ce7d7e --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/EventGridDataFormat.cs @@ -0,0 +1,128 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + public partial struct EventGridDataFormat : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat Apacheavro = @"APACHEAVRO"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat Avro = @"AVRO"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat Csv = @"CSV"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat Json = @"JSON"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat Multijson = @"MULTIJSON"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat Orc = @"ORC"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat Parquet = @"PARQUET"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat Psv = @"PSV"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat Raw = @"RAW"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat Scsv = @"SCSV"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat Singlejson = @"SINGLEJSON"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat Sohsv = @"SOHSV"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat Tsv = @"TSV"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat Tsve = @"TSVE"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat Txt = @"TXT"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat W3Clogfile = @"W3CLOGFILE"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to EventGridDataFormat + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new EventGridDataFormat(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type EventGridDataFormat + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type EventGridDataFormat (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is EventGridDataFormat && Equals((EventGridDataFormat)obj); + } + + /// Creates an instance of the + /// the value to create an instance for. + private EventGridDataFormat(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns hashCode for enum EventGridDataFormat + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for EventGridDataFormat + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to EventGridDataFormat + /// the value to convert to an instance of . + + public static implicit operator EventGridDataFormat(string value) + { + return new EventGridDataFormat(value); + } + + /// Implicit operator to convert EventGridDataFormat to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat e) + { + return e._value; + } + + /// Overriding != operator for enum EventGridDataFormat + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum EventGridDataFormat + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventGridDataFormat e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/EventHubDataFormat.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/EventHubDataFormat.Completer.cs new file mode 100644 index 000000000000..664532c81776 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/EventHubDataFormat.Completer.cs @@ -0,0 +1,97 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormatTypeConverter))] + public partial struct EventHubDataFormat : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "MULTIJSON".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'MULTIJSON'", "MULTIJSON", global::System.Management.Automation.CompletionResultType.ParameterValue, "MULTIJSON"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "JSON".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'JSON'", "JSON", global::System.Management.Automation.CompletionResultType.ParameterValue, "JSON"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "CSV".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'CSV'", "CSV", global::System.Management.Automation.CompletionResultType.ParameterValue, "CSV"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "TSV".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'TSV'", "TSV", global::System.Management.Automation.CompletionResultType.ParameterValue, "TSV"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SCSV".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'SCSV'", "SCSV", global::System.Management.Automation.CompletionResultType.ParameterValue, "SCSV"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SOHSV".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'SOHSV'", "SOHSV", global::System.Management.Automation.CompletionResultType.ParameterValue, "SOHSV"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "PSV".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'PSV'", "PSV", global::System.Management.Automation.CompletionResultType.ParameterValue, "PSV"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "TXT".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'TXT'", "TXT", global::System.Management.Automation.CompletionResultType.ParameterValue, "TXT"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "RAW".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'RAW'", "RAW", global::System.Management.Automation.CompletionResultType.ParameterValue, "RAW"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SINGLEJSON".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'SINGLEJSON'", "SINGLEJSON", global::System.Management.Automation.CompletionResultType.ParameterValue, "SINGLEJSON"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "AVRO".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'AVRO'", "AVRO", global::System.Management.Automation.CompletionResultType.ParameterValue, "AVRO"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "TSVE".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'TSVE'", "TSVE", global::System.Management.Automation.CompletionResultType.ParameterValue, "TSVE"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "PARQUET".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'PARQUET'", "PARQUET", global::System.Management.Automation.CompletionResultType.ParameterValue, "PARQUET"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ORC".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ORC'", "ORC", global::System.Management.Automation.CompletionResultType.ParameterValue, "ORC"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "APACHEAVRO".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'APACHEAVRO'", "APACHEAVRO", global::System.Management.Automation.CompletionResultType.ParameterValue, "APACHEAVRO"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "W3CLOGFILE".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'W3CLOGFILE'", "W3CLOGFILE", global::System.Management.Automation.CompletionResultType.ParameterValue, "W3CLOGFILE"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/EventHubDataFormat.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/EventHubDataFormat.TypeConverter.cs new file mode 100644 index 000000000000..7bc8b2a3e9cb --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/EventHubDataFormat.TypeConverter.cs @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + public partial class EventHubDataFormatTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => EventHubDataFormat.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/EventHubDataFormat.cs b/swaggerci/azure-kusto/generated/api/Support/EventHubDataFormat.cs new file mode 100644 index 000000000000..0479932aeff0 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/EventHubDataFormat.cs @@ -0,0 +1,128 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + public partial struct EventHubDataFormat : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat Apacheavro = @"APACHEAVRO"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat Avro = @"AVRO"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat Csv = @"CSV"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat Json = @"JSON"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat Multijson = @"MULTIJSON"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat Orc = @"ORC"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat Parquet = @"PARQUET"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat Psv = @"PSV"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat Raw = @"RAW"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat Scsv = @"SCSV"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat Singlejson = @"SINGLEJSON"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat Sohsv = @"SOHSV"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat Tsv = @"TSV"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat Tsve = @"TSVE"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat Txt = @"TXT"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat W3Clogfile = @"W3CLOGFILE"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to EventHubDataFormat + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new EventHubDataFormat(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type EventHubDataFormat + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type EventHubDataFormat (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is EventHubDataFormat && Equals((EventHubDataFormat)obj); + } + + /// Creates an instance of the + /// the value to create an instance for. + private EventHubDataFormat(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns hashCode for enum EventHubDataFormat + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for EventHubDataFormat + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to EventHubDataFormat + /// the value to convert to an instance of . + + public static implicit operator EventHubDataFormat(string value) + { + return new EventHubDataFormat(value); + } + + /// Implicit operator to convert EventHubDataFormat to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat e) + { + return e._value; + } + + /// Overriding != operator for enum EventHubDataFormat + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum EventHubDataFormat + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EventHubDataFormat e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/IdentityType.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/IdentityType.Completer.cs new file mode 100644 index 000000000000..11018e047f16 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/IdentityType.Completer.cs @@ -0,0 +1,50 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// 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 all identities. + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityTypeTypeConverter))] + public partial struct IdentityType : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "None".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'None'", "None", global::System.Management.Automation.CompletionResultType.ParameterValue, "None"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SystemAssigned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'SystemAssigned'", "SystemAssigned", global::System.Management.Automation.CompletionResultType.ParameterValue, "SystemAssigned"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "UserAssigned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'UserAssigned'", "UserAssigned", global::System.Management.Automation.CompletionResultType.ParameterValue, "UserAssigned"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SystemAssigned, UserAssigned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'SystemAssigned, UserAssigned'", "SystemAssigned, UserAssigned", global::System.Management.Automation.CompletionResultType.ParameterValue, "SystemAssigned, UserAssigned"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/IdentityType.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/IdentityType.TypeConverter.cs new file mode 100644 index 000000000000..90dd33cdfa55 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/IdentityType.TypeConverter.cs @@ -0,0 +1,62 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// 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 all identities. + /// + public partial class IdentityTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => IdentityType.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/IdentityType.cs b/swaggerci/azure-kusto/generated/api/Support/IdentityType.cs new file mode 100644 index 000000000000..38aa5dd5d0b3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/IdentityType.cs @@ -0,0 +1,105 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// 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 all identities. + /// + public partial struct IdentityType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType None = @"None"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType SystemAssigned = @"SystemAssigned"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType SystemAssignedUserAssigned = @"SystemAssigned, UserAssigned"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType UserAssigned = @"UserAssigned"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to IdentityType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new IdentityType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type IdentityType + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type IdentityType (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is IdentityType && Equals((IdentityType)obj); + } + + /// Returns hashCode for enum IdentityType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private IdentityType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for IdentityType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to IdentityType + /// the value to convert to an instance of . + + public static implicit operator IdentityType(string value) + { + return new IdentityType(value); + } + + /// Implicit operator to convert IdentityType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType e) + { + return e._value; + } + + /// Overriding != operator for enum IdentityType + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum IdentityType + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/IotHubDataFormat.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/IotHubDataFormat.Completer.cs new file mode 100644 index 000000000000..90804182891f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/IotHubDataFormat.Completer.cs @@ -0,0 +1,97 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormatTypeConverter))] + public partial struct IotHubDataFormat : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "MULTIJSON".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'MULTIJSON'", "MULTIJSON", global::System.Management.Automation.CompletionResultType.ParameterValue, "MULTIJSON"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "JSON".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'JSON'", "JSON", global::System.Management.Automation.CompletionResultType.ParameterValue, "JSON"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "CSV".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'CSV'", "CSV", global::System.Management.Automation.CompletionResultType.ParameterValue, "CSV"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "TSV".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'TSV'", "TSV", global::System.Management.Automation.CompletionResultType.ParameterValue, "TSV"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SCSV".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'SCSV'", "SCSV", global::System.Management.Automation.CompletionResultType.ParameterValue, "SCSV"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SOHSV".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'SOHSV'", "SOHSV", global::System.Management.Automation.CompletionResultType.ParameterValue, "SOHSV"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "PSV".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'PSV'", "PSV", global::System.Management.Automation.CompletionResultType.ParameterValue, "PSV"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "TXT".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'TXT'", "TXT", global::System.Management.Automation.CompletionResultType.ParameterValue, "TXT"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "RAW".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'RAW'", "RAW", global::System.Management.Automation.CompletionResultType.ParameterValue, "RAW"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SINGLEJSON".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'SINGLEJSON'", "SINGLEJSON", global::System.Management.Automation.CompletionResultType.ParameterValue, "SINGLEJSON"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "AVRO".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'AVRO'", "AVRO", global::System.Management.Automation.CompletionResultType.ParameterValue, "AVRO"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "TSVE".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'TSVE'", "TSVE", global::System.Management.Automation.CompletionResultType.ParameterValue, "TSVE"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "PARQUET".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'PARQUET'", "PARQUET", global::System.Management.Automation.CompletionResultType.ParameterValue, "PARQUET"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ORC".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ORC'", "ORC", global::System.Management.Automation.CompletionResultType.ParameterValue, "ORC"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "APACHEAVRO".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'APACHEAVRO'", "APACHEAVRO", global::System.Management.Automation.CompletionResultType.ParameterValue, "APACHEAVRO"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "W3CLOGFILE".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'W3CLOGFILE'", "W3CLOGFILE", global::System.Management.Automation.CompletionResultType.ParameterValue, "W3CLOGFILE"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/IotHubDataFormat.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/IotHubDataFormat.TypeConverter.cs new file mode 100644 index 000000000000..589f1a8c22c5 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/IotHubDataFormat.TypeConverter.cs @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + public partial class IotHubDataFormatTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => IotHubDataFormat.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/IotHubDataFormat.cs b/swaggerci/azure-kusto/generated/api/Support/IotHubDataFormat.cs new file mode 100644 index 000000000000..1da77c387a3c --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/IotHubDataFormat.cs @@ -0,0 +1,128 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// The data format of the message. Optionally the data format can be added to each message. + /// + public partial struct IotHubDataFormat : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat Apacheavro = @"APACHEAVRO"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat Avro = @"AVRO"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat Csv = @"CSV"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat Json = @"JSON"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat Multijson = @"MULTIJSON"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat Orc = @"ORC"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat Parquet = @"PARQUET"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat Psv = @"PSV"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat Raw = @"RAW"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat Scsv = @"SCSV"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat Singlejson = @"SINGLEJSON"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat Sohsv = @"SOHSV"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat Tsv = @"TSV"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat Tsve = @"TSVE"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat Txt = @"TXT"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat W3Clogfile = @"W3CLOGFILE"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to IotHubDataFormat + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new IotHubDataFormat(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type IotHubDataFormat + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type IotHubDataFormat (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is IotHubDataFormat && Equals((IotHubDataFormat)obj); + } + + /// Returns hashCode for enum IotHubDataFormat + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private IotHubDataFormat(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for IotHubDataFormat + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to IotHubDataFormat + /// the value to convert to an instance of . + + public static implicit operator IotHubDataFormat(string value) + { + return new IotHubDataFormat(value); + } + + /// Implicit operator to convert IotHubDataFormat to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat e) + { + return e._value; + } + + /// Overriding != operator for enum IotHubDataFormat + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum IotHubDataFormat + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IotHubDataFormat e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/Kind.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/Kind.Completer.cs new file mode 100644 index 000000000000..ac4313f33b71 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/Kind.Completer.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Kind of the database + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.KindTypeConverter))] + public partial struct Kind : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ReadWrite".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ReadWrite'", "ReadWrite", global::System.Management.Automation.CompletionResultType.ParameterValue, "ReadWrite"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ReadOnlyFollowing".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ReadOnlyFollowing'", "ReadOnlyFollowing", global::System.Management.Automation.CompletionResultType.ParameterValue, "ReadOnlyFollowing"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/Kind.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/Kind.TypeConverter.cs new file mode 100644 index 000000000000..87a448d2e768 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/Kind.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Kind of the database + public partial class KindTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => Kind.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/Kind.cs b/swaggerci/azure-kusto/generated/api/Support/Kind.cs new file mode 100644 index 000000000000..9c4bdf9968ef --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/Kind.cs @@ -0,0 +1,98 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Kind of the database + public partial struct Kind : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind ReadOnlyFollowing = @"ReadOnlyFollowing"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind ReadWrite = @"ReadWrite"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to Kind + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new Kind(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type Kind + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type Kind (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is Kind && Equals((Kind)obj); + } + + /// Returns hashCode for enum Kind + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private Kind(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for Kind + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to Kind + /// the value to convert to an instance of . + + public static implicit operator Kind(string value) + { + return new Kind(value); + } + + /// Implicit operator to convert Kind to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind e) + { + return e._value; + } + + /// Overriding != operator for enum Kind + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum Kind + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/LanguageExtensionName.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/LanguageExtensionName.Completer.cs new file mode 100644 index 000000000000..28a816d1381d --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/LanguageExtensionName.Completer.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Language extension that can run within KQL query. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionNameTypeConverter))] + public partial struct LanguageExtensionName : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "PYTHON".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'PYTHON'", "PYTHON", global::System.Management.Automation.CompletionResultType.ParameterValue, "PYTHON"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "R".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'R'", "R", global::System.Management.Automation.CompletionResultType.ParameterValue, "R"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/LanguageExtensionName.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/LanguageExtensionName.TypeConverter.cs new file mode 100644 index 000000000000..17e0479673b4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/LanguageExtensionName.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Language extension that can run within KQL query. + public partial class LanguageExtensionNameTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => LanguageExtensionName.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/LanguageExtensionName.cs b/swaggerci/azure-kusto/generated/api/Support/LanguageExtensionName.cs new file mode 100644 index 000000000000..babc0359b961 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/LanguageExtensionName.cs @@ -0,0 +1,98 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Language extension that can run within KQL query. + public partial struct LanguageExtensionName : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionName Python = @"PYTHON"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionName R = @"R"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to LanguageExtensionName + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new LanguageExtensionName(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type LanguageExtensionName + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionName e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type LanguageExtensionName (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is LanguageExtensionName && Equals((LanguageExtensionName)obj); + } + + /// Returns hashCode for enum LanguageExtensionName + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private LanguageExtensionName(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for LanguageExtensionName + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to LanguageExtensionName + /// the value to convert to an instance of . + + public static implicit operator LanguageExtensionName(string value) + { + return new LanguageExtensionName(value); + } + + /// Implicit operator to convert LanguageExtensionName to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionName e) + { + return e._value; + } + + /// Overriding != operator for enum LanguageExtensionName + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionName e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionName e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum LanguageExtensionName + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionName e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.LanguageExtensionName e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/PrincipalType.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/PrincipalType.Completer.cs new file mode 100644 index 000000000000..a904719ff115 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/PrincipalType.Completer.cs @@ -0,0 +1,43 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Principal type. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalTypeTypeConverter))] + public partial struct PrincipalType : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "App".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'App'", "App", global::System.Management.Automation.CompletionResultType.ParameterValue, "App"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Group".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Group'", "Group", global::System.Management.Automation.CompletionResultType.ParameterValue, "Group"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "User".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'User'", "User", global::System.Management.Automation.CompletionResultType.ParameterValue, "User"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/PrincipalType.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/PrincipalType.TypeConverter.cs new file mode 100644 index 000000000000..3b00336ccd35 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/PrincipalType.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Principal type. + public partial class PrincipalTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => PrincipalType.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/PrincipalType.cs b/swaggerci/azure-kusto/generated/api/Support/PrincipalType.cs new file mode 100644 index 000000000000..5a1b9d07945a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/PrincipalType.cs @@ -0,0 +1,100 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Principal type. + public partial struct PrincipalType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType App = @"App"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType Group = @"Group"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType User = @"User"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to PrincipalType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PrincipalType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PrincipalType + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type PrincipalType (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is PrincipalType && Equals((PrincipalType)obj); + } + + /// Returns hashCode for enum PrincipalType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private PrincipalType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PrincipalType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PrincipalType + /// the value to convert to an instance of . + + public static implicit operator PrincipalType(string value) + { + return new PrincipalType(value); + } + + /// Implicit operator to convert PrincipalType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType e) + { + return e._value; + } + + /// Overriding != operator for enum PrincipalType + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PrincipalType + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/PrincipalsModificationKind.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/PrincipalsModificationKind.Completer.cs new file mode 100644 index 000000000000..68b9e323e1d3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/PrincipalsModificationKind.Completer.cs @@ -0,0 +1,43 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The principals modification kind of the database + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKindTypeConverter))] + public partial struct PrincipalsModificationKind : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Union".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Union'", "Union", global::System.Management.Automation.CompletionResultType.ParameterValue, "Union"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Replace".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Replace'", "Replace", global::System.Management.Automation.CompletionResultType.ParameterValue, "Replace"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "None".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'None'", "None", global::System.Management.Automation.CompletionResultType.ParameterValue, "None"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/PrincipalsModificationKind.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/PrincipalsModificationKind.TypeConverter.cs new file mode 100644 index 000000000000..007200db2122 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/PrincipalsModificationKind.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The principals modification kind of the database + public partial class PrincipalsModificationKindTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => PrincipalsModificationKind.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/PrincipalsModificationKind.cs b/swaggerci/azure-kusto/generated/api/Support/PrincipalsModificationKind.cs new file mode 100644 index 000000000000..9a9144f65fa0 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/PrincipalsModificationKind.cs @@ -0,0 +1,102 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The principals modification kind of the database + public partial struct PrincipalsModificationKind : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind None = @"None"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind Replace = @"Replace"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind Union = @"Union"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to PrincipalsModificationKind + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PrincipalsModificationKind(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PrincipalsModificationKind + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type PrincipalsModificationKind (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is PrincipalsModificationKind && Equals((PrincipalsModificationKind)obj); + } + + /// Returns hashCode for enum PrincipalsModificationKind + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private PrincipalsModificationKind(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PrincipalsModificationKind + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PrincipalsModificationKind + /// the value to convert to an instance of . + + public static implicit operator PrincipalsModificationKind(string value) + { + return new PrincipalsModificationKind(value); + } + + /// Implicit operator to convert PrincipalsModificationKind to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind e) + { + return e._value; + } + + /// Overriding != operator for enum PrincipalsModificationKind + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PrincipalsModificationKind + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalsModificationKind e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/ProvisioningState.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/ProvisioningState.Completer.cs new file mode 100644 index 000000000000..6611e01ed324 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/ProvisioningState.Completer.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The provisioned state of the resource. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningStateTypeConverter))] + public partial struct ProvisioningState : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Running".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Running'", "Running", global::System.Management.Automation.CompletionResultType.ParameterValue, "Running"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Creating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Creating'", "Creating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Creating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Succeeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Succeeded'", "Succeeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "Succeeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Failed'", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Moving".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Moving'", "Moving", global::System.Management.Automation.CompletionResultType.ParameterValue, "Moving"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/ProvisioningState.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/ProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..d563eefdeedb --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/ProvisioningState.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The provisioned state of the resource. + public partial class ProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ProvisioningState.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/ProvisioningState.cs b/swaggerci/azure-kusto/generated/api/Support/ProvisioningState.cs new file mode 100644 index 000000000000..503add0d5644 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/ProvisioningState.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The provisioned state of the resource. + public partial struct ProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState Moving = @"Moving"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState Running = @"Running"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState Succeeded = @"Succeeded"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to ProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ProvisioningState + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ProvisioningState (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is ProvisioningState && Equals((ProvisioningState)obj); + } + + /// Returns hashCode for enum ProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private ProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for ProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ProvisioningState + /// the value to convert to an instance of . + + public static implicit operator ProvisioningState(string value) + { + return new ProvisioningState(value); + } + + /// Implicit operator to convert ProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum ProvisioningState + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ProvisioningState + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/PublicIPType.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/PublicIPType.Completer.cs new file mode 100644 index 000000000000..7d38dd53915b --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/PublicIPType.Completer.cs @@ -0,0 +1,41 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPTypeTypeConverter))] + public partial struct PublicIPType : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "IPv4".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'IPv4'", "IPv4", global::System.Management.Automation.CompletionResultType.ParameterValue, "IPv4"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "DualStack".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'DualStack'", "DualStack", global::System.Management.Automation.CompletionResultType.ParameterValue, "DualStack"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/PublicIPType.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/PublicIPType.TypeConverter.cs new file mode 100644 index 000000000000..fd1317b617ac --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/PublicIPType.TypeConverter.cs @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + /// + public partial class PublicIPTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => PublicIPType.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/PublicIPType.cs b/swaggerci/azure-kusto/generated/api/Support/PublicIPType.cs new file mode 100644 index 000000000000..de85f9231da9 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/PublicIPType.cs @@ -0,0 +1,100 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + /// + public partial struct PublicIPType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType DualStack = @"DualStack"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType IPv4 = @"IPv4"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to PublicIPType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PublicIPType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PublicIPType + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type PublicIPType (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is PublicIPType && Equals((PublicIPType)obj); + } + + /// Returns hashCode for enum PublicIPType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private PublicIPType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PublicIPType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PublicIPType + /// the value to convert to an instance of . + + public static implicit operator PublicIPType(string value) + { + return new PublicIPType(value); + } + + /// Implicit operator to convert PublicIPType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType e) + { + return e._value; + } + + /// Overriding != operator for enum PublicIPType + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PublicIPType + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/PublicNetworkAccess.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/PublicNetworkAccess.Completer.cs new file mode 100644 index 000000000000..f81af04967cc --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/PublicNetworkAccess.Completer.cs @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster + /// is allowed + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccessTypeConverter))] + public partial struct PublicNetworkAccess : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Enabled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Enabled'", "Enabled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Enabled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Disabled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Disabled'", "Disabled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Disabled"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/PublicNetworkAccess.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/PublicNetworkAccess.TypeConverter.cs new file mode 100644 index 000000000000..b3a06a17cafb --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/PublicNetworkAccess.TypeConverter.cs @@ -0,0 +1,62 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster + /// is allowed + /// + public partial class PublicNetworkAccessTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => PublicNetworkAccess.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/PublicNetworkAccess.cs b/swaggerci/azure-kusto/generated/api/Support/PublicNetworkAccess.cs new file mode 100644 index 000000000000..1f360be1a536 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/PublicNetworkAccess.cs @@ -0,0 +1,101 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// + /// Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster + /// is allowed + /// + public partial struct PublicNetworkAccess : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess Disabled = @"Disabled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess Enabled = @"Enabled"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to PublicNetworkAccess + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PublicNetworkAccess(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PublicNetworkAccess + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type PublicNetworkAccess (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is PublicNetworkAccess && Equals((PublicNetworkAccess)obj); + } + + /// Returns hashCode for enum PublicNetworkAccess + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private PublicNetworkAccess(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PublicNetworkAccess + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PublicNetworkAccess + /// the value to convert to an instance of . + + public static implicit operator PublicNetworkAccess(string value) + { + return new PublicNetworkAccess(value); + } + + /// Implicit operator to convert PublicNetworkAccess to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess e) + { + return e._value; + } + + /// Overriding != operator for enum PublicNetworkAccess + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PublicNetworkAccess + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/Reason.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/Reason.Completer.cs new file mode 100644 index 000000000000..0be61ea1d46f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/Reason.Completer.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Message providing the reason why the given name is invalid. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ReasonTypeConverter))] + public partial struct Reason : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Invalid".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Invalid'", "Invalid", global::System.Management.Automation.CompletionResultType.ParameterValue, "Invalid"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "AlreadyExists".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'AlreadyExists'", "AlreadyExists", global::System.Management.Automation.CompletionResultType.ParameterValue, "AlreadyExists"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/Reason.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/Reason.TypeConverter.cs new file mode 100644 index 000000000000..313eced77812 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/Reason.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Message providing the reason why the given name is invalid. + public partial class ReasonTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => Reason.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/Reason.cs b/swaggerci/azure-kusto/generated/api/Support/Reason.cs new file mode 100644 index 000000000000..0cdcb023b8ea --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/Reason.cs @@ -0,0 +1,98 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// Message providing the reason why the given name is invalid. + public partial struct Reason : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Reason AlreadyExists = @"AlreadyExists"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Reason Invalid = @"Invalid"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to Reason + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new Reason(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type Reason + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Reason e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type Reason (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is Reason && Equals((Reason)obj); + } + + /// Returns hashCode for enum Reason + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private Reason(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for Reason + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to Reason + /// the value to convert to an instance of . + + public static implicit operator Reason(string value) + { + return new Reason(value); + } + + /// Implicit operator to convert Reason to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Reason e) + { + return e._value; + } + + /// Overriding != operator for enum Reason + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Reason e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Reason e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum Reason + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Reason e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Reason e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/State.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/State.Completer.cs new file mode 100644 index 000000000000..73dd89ce6e4c --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/State.Completer.cs @@ -0,0 +1,67 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The state of the resource. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.StateTypeConverter))] + public partial struct State : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Creating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Creating'", "Creating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Creating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Unavailable".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Unavailable'", "Unavailable", global::System.Management.Automation.CompletionResultType.ParameterValue, "Unavailable"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Running".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Running'", "Running", global::System.Management.Automation.CompletionResultType.ParameterValue, "Running"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleted".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleted'", "Deleted", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleted"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Stopping".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Stopping'", "Stopping", global::System.Management.Automation.CompletionResultType.ParameterValue, "Stopping"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Stopped".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Stopped'", "Stopped", global::System.Management.Automation.CompletionResultType.ParameterValue, "Stopped"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Starting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Starting'", "Starting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Starting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/State.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/State.TypeConverter.cs new file mode 100644 index 000000000000..4e807e145cda --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/State.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The state of the resource. + public partial class StateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => State.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/State.cs b/swaggerci/azure-kusto/generated/api/Support/State.cs new file mode 100644 index 000000000000..010ede8931b8 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/State.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The state of the resource. + public partial struct State : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State Deleted = @"Deleted"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State Running = @"Running"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State Starting = @"Starting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State Stopped = @"Stopped"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State Stopping = @"Stopping"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State Unavailable = @"Unavailable"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State Updating = @"Updating"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to State + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new State(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type State + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type State (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is State && Equals((State)obj); + } + + /// Returns hashCode for enum State + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private State(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for State + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to State + /// the value to convert to an instance of . + + public static implicit operator State(string value) + { + return new State(value); + } + + /// Implicit operator to convert State to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State e) + { + return e._value; + } + + /// Overriding != operator for enum State + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum State + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.State e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/Status.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/Status.Completer.cs new file mode 100644 index 000000000000..6559798ddbe1 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/Status.Completer.cs @@ -0,0 +1,47 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The status of operation. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.StatusTypeConverter))] + public partial struct Status : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Succeeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Succeeded'", "Succeeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "Succeeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Failed'", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Running".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Running'", "Running", global::System.Management.Automation.CompletionResultType.ParameterValue, "Running"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/Status.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/Status.TypeConverter.cs new file mode 100644 index 000000000000..6bf1e62e2e92 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/Status.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The status of operation. + public partial class StatusTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => Status.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/Status.cs b/swaggerci/azure-kusto/generated/api/Support/Status.cs new file mode 100644 index 000000000000..a21a65f49c0a --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/Status.cs @@ -0,0 +1,102 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The status of operation. + public partial struct Status : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status Running = @"Running"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status Succeeded = @"Succeeded"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to Status + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new Status(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type Status + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type Status (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is Status && Equals((Status)obj); + } + + /// Returns hashCode for enum Status + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private Status(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for Status + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to Status + /// the value to convert to an instance of . + + public static implicit operator Status(string value) + { + return new Status(value); + } + + /// Implicit operator to convert Status to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status e) + { + return e._value; + } + + /// Overriding != operator for enum Status + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum Status + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Status e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/Type.Completer.cs b/swaggerci/azure-kusto/generated/api/Support/Type.Completer.cs new file mode 100644 index 000000000000..b877e5e4ff21 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/Type.Completer.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The type of resource, for instance Microsoft.Kusto/clusters/databases. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.TypeTypeConverter))] + public partial struct Type : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Microsoft.Kusto/clusters/databases".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Microsoft.Kusto/clusters/databases'", "Microsoft.Kusto/clusters/databases", global::System.Management.Automation.CompletionResultType.ParameterValue, "Microsoft.Kusto/clusters/databases"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Microsoft.Kusto/clusters/attachedDatabaseConfigurations".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Microsoft.Kusto/clusters/attachedDatabaseConfigurations'", "Microsoft.Kusto/clusters/attachedDatabaseConfigurations", global::System.Management.Automation.CompletionResultType.ParameterValue, "Microsoft.Kusto/clusters/attachedDatabaseConfigurations"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/Type.TypeConverter.cs b/swaggerci/azure-kusto/generated/api/Support/Type.TypeConverter.cs new file mode 100644 index 000000000000..e24fb4cf338f --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/Type.TypeConverter.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The type of resource, for instance Microsoft.Kusto/clusters/databases. + public partial class TypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => Type.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/api/Support/Type.cs b/swaggerci/azure-kusto/generated/api/Support/Type.cs new file mode 100644 index 000000000000..a2d6cc448012 --- /dev/null +++ b/swaggerci/azure-kusto/generated/api/Support/Type.cs @@ -0,0 +1,98 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support +{ + + /// The type of resource, for instance Microsoft.Kusto/clusters/databases. + public partial struct Type : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type MicrosoftKustoClustersAttachedDatabaseConfigurations = @"Microsoft.Kusto/clusters/attachedDatabaseConfigurations"; + + public static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type MicrosoftKustoClustersDatabases = @"Microsoft.Kusto/clusters/databases"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to Type + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new Type(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type Type + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type Type (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is Type && Equals((Type)obj); + } + + /// Returns hashCode for enum Type + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for Type + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Creates an instance of the + /// the value to create an instance for. + private Type(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Implicit operator to convert string to Type + /// the value to convert to an instance of . + + public static implicit operator Type(string value) + { + return new Type(value); + } + + /// Implicit operator to convert Type to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type e) + { + return e._value; + } + + /// Overriding != operator for enum Type + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum Type + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type e1, Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoClusterLanguageExtension_Add.cs b/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoClusterLanguageExtension_Add.cs new file mode 100644 index 000000000000..48ca2b098ffd --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoClusterLanguageExtension_Add.cs @@ -0,0 +1,487 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Add a list of language extensions that can run within KQL queries. + /// + /// [OpenAPI] AddLanguageExtensions=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/addLanguageExtensions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Add, @"AzKustoClusterLanguageExtension_Add", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Add a list of language extensions that can run within KQL queries.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class AddAzKustoClusterLanguageExtension_Add : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList _languageExtensionsToAdd; + + /// The list of language extension objects. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The list of language extension objects.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The list of language extension objects.", + SerializedName = @"languageExtensionsToAdd", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList LanguageExtensionsToAdd { get => this._languageExtensionsToAdd; set => this._languageExtensionsToAdd = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// Intializes a new instance of the cmdlet class. + /// + public AddAzKustoClusterLanguageExtension_Add() + { + + } + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of AddAzKustoClusterLanguageExtension_Add + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.AddAzKustoClusterLanguageExtension_Add Clone() + { + var clone = new AddAzKustoClusterLanguageExtension_Add(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.LanguageExtensionsToAdd = this.LanguageExtensionsToAdd; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersAddLanguageExtensions' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersAddLanguageExtensions(SubscriptionId, ResourceGroupName, ClusterName, LanguageExtensionsToAdd, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,body=LanguageExtensionsToAdd}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, body=LanguageExtensionsToAdd }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, body=LanguageExtensionsToAdd }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoClusterLanguageExtension_AddExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoClusterLanguageExtension_AddExpanded.cs new file mode 100644 index 000000000000..8aa373443bc8 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoClusterLanguageExtension_AddExpanded.cs @@ -0,0 +1,492 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Add a list of language extensions that can run within KQL queries. + /// + /// [OpenAPI] AddLanguageExtensions=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/addLanguageExtensions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Add, @"AzKustoClusterLanguageExtension_AddExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Add a list of language extensions that can run within KQL queries.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class AddAzKustoClusterLanguageExtension_AddExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList _languageExtensionsToAddBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionsList(); + + /// The list of language extension objects. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList LanguageExtensionsToAddBody { get => this._languageExtensionsToAddBody; set => this._languageExtensionsToAddBody = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// The list of language extensions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of language extensions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of language extensions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] Value { get => LanguageExtensionsToAddBody.Value ?? null /* arrayOf */; set => LanguageExtensionsToAddBody.Value = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// Intializes a new instance of the cmdlet class. + /// + public AddAzKustoClusterLanguageExtension_AddExpanded() + { + + } + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of AddAzKustoClusterLanguageExtension_AddExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.AddAzKustoClusterLanguageExtension_AddExpanded Clone() + { + var clone = new AddAzKustoClusterLanguageExtension_AddExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.LanguageExtensionsToAddBody = this.LanguageExtensionsToAddBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersAddLanguageExtensions' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersAddLanguageExtensions(SubscriptionId, ResourceGroupName, ClusterName, LanguageExtensionsToAddBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,body=LanguageExtensionsToAddBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, body=LanguageExtensionsToAddBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, body=LanguageExtensionsToAddBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoClusterLanguageExtension_AddViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoClusterLanguageExtension_AddViaIdentity.cs new file mode 100644 index 000000000000..95fd49b50c25 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoClusterLanguageExtension_AddViaIdentity.cs @@ -0,0 +1,463 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Add a list of language extensions that can run within KQL queries. + /// + /// [OpenAPI] AddLanguageExtensions=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/addLanguageExtensions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Add, @"AzKustoClusterLanguageExtension_AddViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Add a list of language extensions that can run within KQL queries.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class AddAzKustoClusterLanguageExtension_AddViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList _languageExtensionsToAdd; + + /// The list of language extension objects. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The list of language extension objects.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The list of language extension objects.", + SerializedName = @"languageExtensionsToAdd", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList LanguageExtensionsToAdd { get => this._languageExtensionsToAdd; set => this._languageExtensionsToAdd = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// Intializes a new instance of the cmdlet class. + /// + public AddAzKustoClusterLanguageExtension_AddViaIdentity() + { + + } + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of AddAzKustoClusterLanguageExtension_AddViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.AddAzKustoClusterLanguageExtension_AddViaIdentity Clone() + { + var clone = new AddAzKustoClusterLanguageExtension_AddViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.LanguageExtensionsToAdd = this.LanguageExtensionsToAdd; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersAddLanguageExtensions' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClustersAddLanguageExtensionsViaIdentity(InputObject.Id, LanguageExtensionsToAdd, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClustersAddLanguageExtensions(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, LanguageExtensionsToAdd, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=LanguageExtensionsToAdd}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=LanguageExtensionsToAdd }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=LanguageExtensionsToAdd }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoClusterLanguageExtension_AddViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoClusterLanguageExtension_AddViaIdentityExpanded.cs new file mode 100644 index 000000000000..c0c71f257889 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoClusterLanguageExtension_AddViaIdentityExpanded.cs @@ -0,0 +1,470 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Add a list of language extensions that can run within KQL queries. + /// + /// [OpenAPI] AddLanguageExtensions=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/addLanguageExtensions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Add, @"AzKustoClusterLanguageExtension_AddViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Add a list of language extensions that can run within KQL queries.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class AddAzKustoClusterLanguageExtension_AddViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList _languageExtensionsToAddBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionsList(); + + /// The list of language extension objects. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList LanguageExtensionsToAddBody { get => this._languageExtensionsToAddBody; set => this._languageExtensionsToAddBody = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// The list of language extensions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of language extensions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of language extensions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] Value { get => LanguageExtensionsToAddBody.Value ?? null /* arrayOf */; set => LanguageExtensionsToAddBody.Value = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// Intializes a new instance of the cmdlet class. + /// + public AddAzKustoClusterLanguageExtension_AddViaIdentityExpanded() + { + + } + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of AddAzKustoClusterLanguageExtension_AddViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.AddAzKustoClusterLanguageExtension_AddViaIdentityExpanded Clone() + { + var clone = new AddAzKustoClusterLanguageExtension_AddViaIdentityExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.LanguageExtensionsToAddBody = this.LanguageExtensionsToAddBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersAddLanguageExtensions' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClustersAddLanguageExtensionsViaIdentity(InputObject.Id, LanguageExtensionsToAddBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClustersAddLanguageExtensions(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, LanguageExtensionsToAddBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=LanguageExtensionsToAddBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=LanguageExtensionsToAddBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=LanguageExtensionsToAddBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoDatabasePrincipal_Add.cs b/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoDatabasePrincipal_Add.cs new file mode 100644 index 000000000000..a24060de9b31 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoDatabasePrincipal_Add.cs @@ -0,0 +1,430 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Add Database principals permissions. + /// + /// [OpenAPI] AddPrincipals=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/addPrincipals" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Add, @"AzKustoDatabasePrincipal_Add", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Add Database principals permissions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class AddAzKustoDatabasePrincipal_Add : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest _databasePrincipalsToAdd; + + /// The list Kusto database principals operation request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The list Kusto database principals operation request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The list Kusto database principals operation request.", + SerializedName = @"databasePrincipalsToAdd", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest DatabasePrincipalsToAdd { get => this._databasePrincipalsToAdd; set => this._databasePrincipalsToAdd = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// Intializes a new instance of the cmdlet class. + /// + public AddAzKustoDatabasePrincipal_Add() + { + + } + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesAddPrincipals' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasesAddPrincipals(ResourceGroupName, ClusterName, DatabaseName, SubscriptionId, DatabasePrincipalsToAdd, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,SubscriptionId=SubscriptionId,body=DatabasePrincipalsToAdd}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=DatabasePrincipalsToAdd }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=DatabasePrincipalsToAdd }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoDatabasePrincipal_AddExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoDatabasePrincipal_AddExpanded.cs new file mode 100644 index 000000000000..689ba74fb6d0 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoDatabasePrincipal_AddExpanded.cs @@ -0,0 +1,435 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Add Database principals permissions. + /// + /// [OpenAPI] AddPrincipals=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/addPrincipals" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Add, @"AzKustoDatabasePrincipal_AddExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Add Database principals permissions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class AddAzKustoDatabasePrincipal_AddExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest _databasePrincipalsToAddBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalListRequest(); + + /// The list Kusto database principals operation request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest DatabasePrincipalsToAddBody { get => this._databasePrincipalsToAddBody; set => this._databasePrincipalsToAddBody = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// The list of Kusto database principals. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of Kusto database principals.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of Kusto database principals.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[] Value { get => DatabasePrincipalsToAddBody.Value ?? null /* arrayOf */; set => DatabasePrincipalsToAddBody.Value = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// Intializes a new instance of the cmdlet class. + /// + public AddAzKustoDatabasePrincipal_AddExpanded() + { + + } + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesAddPrincipals' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasesAddPrincipals(ResourceGroupName, ClusterName, DatabaseName, SubscriptionId, DatabasePrincipalsToAddBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,SubscriptionId=SubscriptionId,body=DatabasePrincipalsToAddBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=DatabasePrincipalsToAddBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=DatabasePrincipalsToAddBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoDatabasePrincipal_AddViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoDatabasePrincipal_AddViaIdentity.cs new file mode 100644 index 000000000000..004e9463cd98 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoDatabasePrincipal_AddViaIdentity.cs @@ -0,0 +1,399 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Add Database principals permissions. + /// + /// [OpenAPI] AddPrincipals=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/addPrincipals" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Add, @"AzKustoDatabasePrincipal_AddViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Add Database principals permissions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class AddAzKustoDatabasePrincipal_AddViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest _databasePrincipalsToAdd; + + /// The list Kusto database principals operation request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The list Kusto database principals operation request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The list Kusto database principals operation request.", + SerializedName = @"databasePrincipalsToAdd", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest DatabasePrincipalsToAdd { get => this._databasePrincipalsToAdd; set => this._databasePrincipalsToAdd = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// Intializes a new instance of the cmdlet class. + /// + public AddAzKustoDatabasePrincipal_AddViaIdentity() + { + + } + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesAddPrincipals' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DatabasesAddPrincipalsViaIdentity(InputObject.Id, DatabasePrincipalsToAdd, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DatabasesAddPrincipals(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.SubscriptionId ?? null, DatabasePrincipalsToAdd, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DatabasePrincipalsToAdd}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DatabasePrincipalsToAdd }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DatabasePrincipalsToAdd }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoDatabasePrincipal_AddViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoDatabasePrincipal_AddViaIdentityExpanded.cs new file mode 100644 index 000000000000..71a9329dc7ed --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/AddAzKustoDatabasePrincipal_AddViaIdentityExpanded.cs @@ -0,0 +1,404 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Add Database principals permissions. + /// + /// [OpenAPI] AddPrincipals=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/addPrincipals" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Add, @"AzKustoDatabasePrincipal_AddViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Add Database principals permissions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class AddAzKustoDatabasePrincipal_AddViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest _databasePrincipalsToAddBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalListRequest(); + + /// The list Kusto database principals operation request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest DatabasePrincipalsToAddBody { get => this._databasePrincipalsToAddBody; set => this._databasePrincipalsToAddBody = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// The list of Kusto database principals. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of Kusto database principals.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of Kusto database principals.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[] Value { get => DatabasePrincipalsToAddBody.Value ?? null /* arrayOf */; set => DatabasePrincipalsToAddBody.Value = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// Intializes a new instance of the cmdlet class. + /// + public AddAzKustoDatabasePrincipal_AddViaIdentityExpanded() + { + + } + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesAddPrincipals' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DatabasesAddPrincipalsViaIdentity(InputObject.Id, DatabasePrincipalsToAddBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DatabasesAddPrincipals(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.SubscriptionId ?? null, DatabasePrincipalsToAddBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DatabasePrincipalsToAddBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DatabasePrincipalsToAddBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DatabasePrincipalsToAddBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoAttachedDatabaseConfiguration_Get.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoAttachedDatabaseConfiguration_Get.cs new file mode 100644 index 000000000000..6932955324f6 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoAttachedDatabaseConfiguration_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns an attached database configuration. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/attachedDatabaseConfigurations/{attachedDatabaseConfigurationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoAttachedDatabaseConfiguration_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns an attached database configuration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoAttachedDatabaseConfiguration_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the attached database configuration. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the attached database configuration.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the attached database configuration.", + SerializedName = @"attachedDatabaseConfigurationName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("AttachedDatabaseConfigurationName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoAttachedDatabaseConfiguration_Get() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AttachedDatabaseConfigurationsGet(ResourceGroupName, ClusterName, Name, SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,Name=Name,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoAttachedDatabaseConfiguration_GetViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoAttachedDatabaseConfiguration_GetViaIdentity.cs new file mode 100644 index 000000000000..352f22c98f52 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoAttachedDatabaseConfiguration_GetViaIdentity.cs @@ -0,0 +1,382 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns an attached database configuration. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/attachedDatabaseConfigurations/{attachedDatabaseConfigurationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoAttachedDatabaseConfiguration_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns an attached database configuration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoAttachedDatabaseConfiguration_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoAttachedDatabaseConfiguration_GetViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.AttachedDatabaseConfigurationsGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AttachedDatabaseConfigurationName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AttachedDatabaseConfigurationName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.AttachedDatabaseConfigurationsGet(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.AttachedDatabaseConfigurationName ?? null, InputObject.SubscriptionId ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoAttachedDatabaseConfiguration_List.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoAttachedDatabaseConfiguration_List.cs new file mode 100644 index 000000000000..170a8f2b695d --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoAttachedDatabaseConfiguration_List.cs @@ -0,0 +1,405 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// + /// Returns the list of attached database configurations of the given Kusto cluster. + /// + /// + /// [OpenAPI] ListByCluster=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/attachedDatabaseConfigurations" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoAttachedDatabaseConfiguration_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns the list of attached database configurations of the given Kusto cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoAttachedDatabaseConfiguration_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoAttachedDatabaseConfiguration_List() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AttachedDatabaseConfigurationsListByCluster(ResourceGroupName, ClusterName, SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterFollowerDatabase_List.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterFollowerDatabase_List.cs new file mode 100644 index 000000000000..6e09f1200962 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterFollowerDatabase_List.cs @@ -0,0 +1,408 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// + /// Returns a list of databases that are owned by this cluster and were followed by another cluster. + /// + /// + /// [OpenAPI] ListFollowerDatabases=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/listFollowerDatabases" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoClusterFollowerDatabase_List", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns a list of databases that are owned by this cluster and were followed by another cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoClusterFollowerDatabase_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoClusterFollowerDatabase_List() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersListFollowerDatabases' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersListFollowerDatabases(ResourceGroupName, ClusterName, SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterLanguageExtension_List.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterLanguageExtension_List.cs new file mode 100644 index 000000000000..d40b8c56d49a --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterLanguageExtension_List.cs @@ -0,0 +1,406 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns a list of language extensions that can run within KQL queries. + /// + /// [OpenAPI] ListLanguageExtensions=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/listLanguageExtensions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoClusterLanguageExtension_List", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns a list of language extensions that can run within KQL queries.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoClusterLanguageExtension_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoClusterLanguageExtension_List() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersListLanguageExtensions' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersListLanguageExtensions(SubscriptionId, ResourceGroupName, ClusterName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterOutboundNetworkDependencyEndpoint_List.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterOutboundNetworkDependencyEndpoint_List.cs new file mode 100644 index 000000000000..f908e6175a67 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterOutboundNetworkDependencyEndpoint_List.cs @@ -0,0 +1,424 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Gets the network endpoints of all outbound dependencies of a Kusto cluster + /// + /// [OpenAPI] ListOutboundNetworkDependenciesEndpoints=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/outboundNetworkDependenciesEndpoints" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoClusterOutboundNetworkDependencyEndpoint_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOutboundNetworkDependenciesEndpoint))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Gets the network endpoints of all outbound dependencies of a Kusto cluster")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoClusterOutboundNetworkDependencyEndpoint_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoClusterOutboundNetworkDependencyEndpoint_List() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersListOutboundNetworkDependenciesEndpoints(SubscriptionId, ResourceGroupName, ClusterName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersListOutboundNetworkDependenciesEndpoints_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterPrincipalAssignment_Get.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterPrincipalAssignment_Get.cs new file mode 100644 index 000000000000..4549dbb0bdf8 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterPrincipalAssignment_Get.cs @@ -0,0 +1,416 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Gets a Kusto cluster principalAssignment. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/principalAssignments/{principalAssignmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoClusterPrincipalAssignment_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Gets a Kusto cluster principalAssignment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoClusterPrincipalAssignment_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private string _principalAssignmentName; + + /// The name of the Kusto principalAssignment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto principalAssignment.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto principalAssignment.", + SerializedName = @"principalAssignmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string PrincipalAssignmentName { get => this._principalAssignmentName; set => this._principalAssignmentName = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoClusterPrincipalAssignment_Get() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClusterPrincipalAssignmentsGet(SubscriptionId, ResourceGroupName, ClusterName, PrincipalAssignmentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,PrincipalAssignmentName=PrincipalAssignmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, PrincipalAssignmentName=PrincipalAssignmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, PrincipalAssignmentName=PrincipalAssignmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterPrincipalAssignment_GetViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterPrincipalAssignment_GetViaIdentity.cs new file mode 100644 index 000000000000..9b29d1aee645 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterPrincipalAssignment_GetViaIdentity.cs @@ -0,0 +1,382 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Gets a Kusto cluster principalAssignment. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/principalAssignments/{principalAssignmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoClusterPrincipalAssignment_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Gets a Kusto cluster principalAssignment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoClusterPrincipalAssignment_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoClusterPrincipalAssignment_GetViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClusterPrincipalAssignmentsGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.PrincipalAssignmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PrincipalAssignmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClusterPrincipalAssignmentsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.PrincipalAssignmentName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterPrincipalAssignment_List.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterPrincipalAssignment_List.cs new file mode 100644 index 000000000000..a4d95af77dab --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterPrincipalAssignment_List.cs @@ -0,0 +1,403 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Lists all Kusto cluster principalAssignments. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/principalAssignments" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoClusterPrincipalAssignment_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Lists all Kusto cluster principalAssignments.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoClusterPrincipalAssignment_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoClusterPrincipalAssignment_List() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClusterPrincipalAssignmentsList(SubscriptionId, ResourceGroupName, ClusterName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterSku_List.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterSku_List.cs new file mode 100644 index 000000000000..6c6a0720ef13 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterSku_List.cs @@ -0,0 +1,375 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Lists eligible SKUs for Kusto resource provider. + /// + /// [OpenAPI] ListSkus=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/skus" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoClusterSku_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ISkuDescription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Lists eligible SKUs for Kusto resource provider.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoClusterSku_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoClusterSku_List() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersListSkus(SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterSku_List1.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterSku_List1.cs new file mode 100644 index 000000000000..4e852c276d3b --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoClusterSku_List1.cs @@ -0,0 +1,403 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns the SKUs available for the provided resource. + /// + /// [OpenAPI] ListSkusByResource=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/skus" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoClusterSku_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAzureResourceSku))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns the SKUs available for the provided resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoClusterSku_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoClusterSku_List1() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersListSkusByResource(ResourceGroupName, ClusterName, SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoCluster_Get.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoCluster_Get.cs new file mode 100644 index 000000000000..91c380c4456a --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoCluster_Get.cs @@ -0,0 +1,403 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Gets a Kusto cluster. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoCluster_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Gets a Kusto cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoCluster_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ClusterName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoCluster_Get() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersGet(ResourceGroupName, Name, SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,Name=Name,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoCluster_GetViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoCluster_GetViaIdentity.cs new file mode 100644 index 000000000000..383c0ab25969 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoCluster_GetViaIdentity.cs @@ -0,0 +1,378 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Gets a Kusto cluster. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoCluster_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Gets a Kusto cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoCluster_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoCluster_GetViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClustersGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClustersGet(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.SubscriptionId ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoCluster_List.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoCluster_List.cs new file mode 100644 index 000000000000..be70725f61c4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoCluster_List.cs @@ -0,0 +1,389 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Lists all Kusto clusters within a resource group. + /// + /// [OpenAPI] ListByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoCluster_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Lists all Kusto clusters within a resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoCluster_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoCluster_List() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersListByResourceGroup(ResourceGroupName, SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoCluster_List1.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoCluster_List1.cs new file mode 100644 index 000000000000..905b0e602e61 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoCluster_List1.cs @@ -0,0 +1,375 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Lists all Kusto clusters within a subscription. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/clusters" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoCluster_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Lists all Kusto clusters within a subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoCluster_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoCluster_List1() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersList(SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDataConnection_Get.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDataConnection_Get.cs new file mode 100644 index 000000000000..76f19b38c509 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDataConnection_Get.cs @@ -0,0 +1,431 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns a data connection. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnections/{dataConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoDataConnection_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns a data connection.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoDataConnection_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the data connection. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the data connection.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the data connection.", + SerializedName = @"dataConnectionName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DataConnectionName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoDataConnection_Get() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DataConnectionsGet(ResourceGroupName, ClusterName, DatabaseName, Name, SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,Name=Name,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDataConnection_GetViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDataConnection_GetViaIdentity.cs new file mode 100644 index 000000000000..73dd7dd58acb --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDataConnection_GetViaIdentity.cs @@ -0,0 +1,386 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns a data connection. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnections/{dataConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoDataConnection_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns a data connection.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoDataConnection_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoDataConnection_GetViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DataConnectionsGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DataConnectionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DataConnectionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DataConnectionsGet(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.DataConnectionName ?? null, InputObject.SubscriptionId ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDataConnection_List.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDataConnection_List.cs new file mode 100644 index 000000000000..49371753fef3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDataConnection_List.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns the list of data connections of the given Kusto database. + /// + /// [OpenAPI] ListByDatabase=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnections" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoDataConnection_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns the list of data connections of the given Kusto database.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoDataConnection_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoDataConnection_List() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DataConnectionsListByDatabase(ResourceGroupName, ClusterName, DatabaseName, SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabasePrincipalAssignment_Get.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabasePrincipalAssignment_Get.cs new file mode 100644 index 000000000000..ba1401f36067 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabasePrincipalAssignment_Get.cs @@ -0,0 +1,430 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Gets a Kusto cluster database principalAssignment. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/principalAssignments/{principalAssignmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoDatabasePrincipalAssignment_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Gets a Kusto cluster database principalAssignment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoDatabasePrincipalAssignment_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private string _principalAssignmentName; + + /// The name of the Kusto principalAssignment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto principalAssignment.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto principalAssignment.", + SerializedName = @"principalAssignmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string PrincipalAssignmentName { get => this._principalAssignmentName; set => this._principalAssignmentName = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoDatabasePrincipalAssignment_Get() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasePrincipalAssignmentsGet(SubscriptionId, ResourceGroupName, ClusterName, DatabaseName, PrincipalAssignmentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,PrincipalAssignmentName=PrincipalAssignmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, PrincipalAssignmentName=PrincipalAssignmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, PrincipalAssignmentName=PrincipalAssignmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabasePrincipalAssignment_GetViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabasePrincipalAssignment_GetViaIdentity.cs new file mode 100644 index 000000000000..94b269877a46 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabasePrincipalAssignment_GetViaIdentity.cs @@ -0,0 +1,386 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Gets a Kusto cluster database principalAssignment. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/principalAssignments/{principalAssignmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoDatabasePrincipalAssignment_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Gets a Kusto cluster database principalAssignment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoDatabasePrincipalAssignment_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoDatabasePrincipalAssignment_GetViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DatabasePrincipalAssignmentsGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.PrincipalAssignmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PrincipalAssignmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DatabasePrincipalAssignmentsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.PrincipalAssignmentName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabasePrincipalAssignment_List.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabasePrincipalAssignment_List.cs new file mode 100644 index 000000000000..e4ea8054f913 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabasePrincipalAssignment_List.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Lists all Kusto cluster database principalAssignments. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/principalAssignments" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoDatabasePrincipalAssignment_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Lists all Kusto cluster database principalAssignments.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoDatabasePrincipalAssignment_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoDatabasePrincipalAssignment_List() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasePrincipalAssignmentsList(SubscriptionId, ResourceGroupName, ClusterName, DatabaseName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabasePrincipal_List.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabasePrincipal_List.cs new file mode 100644 index 000000000000..533dca373c78 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabasePrincipal_List.cs @@ -0,0 +1,420 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns a list of database principals of the given Kusto cluster and database. + /// + /// [OpenAPI] ListPrincipals=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/listPrincipals" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoDatabasePrincipal_List", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns a list of database principals of the given Kusto cluster and database.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoDatabasePrincipal_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoDatabasePrincipal_List() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesListPrincipals' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasesListPrincipals(ResourceGroupName, ClusterName, DatabaseName, SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabase_Get.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabase_Get.cs new file mode 100644 index 000000000000..3f0997d08cee --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabase_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns a database. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoDatabase_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns a database.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoDatabase_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DatabaseName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoDatabase_Get() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasesGet(ResourceGroupName, ClusterName, Name, SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,Name=Name,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabase_GetViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabase_GetViaIdentity.cs new file mode 100644 index 000000000000..5b119a1bcb01 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabase_GetViaIdentity.cs @@ -0,0 +1,382 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns a database. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoDatabase_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns a database.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoDatabase_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoDatabase_GetViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DatabasesGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DatabasesGet(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.SubscriptionId ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabase_List.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabase_List.cs new file mode 100644 index 000000000000..52525eeaa7d4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoDatabase_List.cs @@ -0,0 +1,403 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns the list of databases of the given Kusto cluster. + /// + /// [OpenAPI] ListByCluster=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoDatabase_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns the list of databases of the given Kusto cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoDatabase_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoDatabase_List() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasesListByCluster(ResourceGroupName, ClusterName, SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoManagedPrivateEndpoint_Get.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoManagedPrivateEndpoint_Get.cs new file mode 100644 index 000000000000..e75a9d7ab95d --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoManagedPrivateEndpoint_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Gets a managed private endpoint. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpoints/{managedPrivateEndpointName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoManagedPrivateEndpoint_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Gets a managed private endpoint.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoManagedPrivateEndpoint_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the managed private endpoint. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the managed private endpoint.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the managed private endpoint.", + SerializedName = @"managedPrivateEndpointName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ManagedPrivateEndpointName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoManagedPrivateEndpoint_Get() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedPrivateEndpointsGet(SubscriptionId, ResourceGroupName, ClusterName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoManagedPrivateEndpoint_GetViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoManagedPrivateEndpoint_GetViaIdentity.cs new file mode 100644 index 000000000000..515255610c6f --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoManagedPrivateEndpoint_GetViaIdentity.cs @@ -0,0 +1,382 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Gets a managed private endpoint. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpoints/{managedPrivateEndpointName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoManagedPrivateEndpoint_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Gets a managed private endpoint.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoManagedPrivateEndpoint_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoManagedPrivateEndpoint_GetViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ManagedPrivateEndpointsGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ManagedPrivateEndpointName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ManagedPrivateEndpointName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ManagedPrivateEndpointsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.ManagedPrivateEndpointName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoManagedPrivateEndpoint_List.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoManagedPrivateEndpoint_List.cs new file mode 100644 index 000000000000..c25e81dc152a --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoManagedPrivateEndpoint_List.cs @@ -0,0 +1,403 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns the list of managed private endpoints. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpoints" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoManagedPrivateEndpoint_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns the list of managed private endpoints.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoManagedPrivateEndpoint_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoManagedPrivateEndpoint_List() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedPrivateEndpointsList(SubscriptionId, ResourceGroupName, ClusterName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperation_List.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperation_List.cs new file mode 100644 index 000000000000..e8b42d3c9748 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperation_List.cs @@ -0,0 +1,373 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Lists available operations for the Microsoft.Kusto provider. + /// + /// [OpenAPI] List=>GET:"/providers/Microsoft.Kusto/operations" + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.InternalExport] + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoOperation_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperation))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Lists available operations for the Microsoft.Kusto provider.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoOperation_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoOperation_List() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.OperationsList(onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.OperationsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperationsResult_Get.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperationsResult_Get.cs new file mode 100644 index 000000000000..903cecc130df --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperationsResult_Get.cs @@ -0,0 +1,402 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns operation results. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/locations/{location}/operationResults/{operationId}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoOperationsResult_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns operation results.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoOperationsResult_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Backing field for property. + private string _location; + + /// Azure location (region) name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Azure location (region) name.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Azure location (region) name.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Location { get => this._location; set => this._location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _operationId; + + /// The Guid of the operation ID + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The Guid of the operation ID")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The Guid of the operation ID", + SerializedName = @"operationId", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string OperationId { get => this._operationId; set => this._operationId = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoOperationsResult_Get() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.OperationsResultsGet(SubscriptionId, Location, OperationId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,Location=Location,OperationId=OperationId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, Location=Location, OperationId=OperationId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, Location=Location, OperationId=OperationId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperationsResult_GetViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperationsResult_GetViaIdentity.cs new file mode 100644 index 000000000000..44c08ccfb644 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperationsResult_GetViaIdentity.cs @@ -0,0 +1,378 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns operation results. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/locations/{location}/operationResults/{operationId}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoOperationsResult_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns operation results.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoOperationsResult_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoOperationsResult_GetViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.OperationsResultsGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.Location) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.Location"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.OperationId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.OperationId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.OperationsResultsGet(InputObject.SubscriptionId ?? null, InputObject.Location ?? null, InputObject.OperationId ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IOperationResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperationsResultsLocation_Get.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperationsResultsLocation_Get.cs new file mode 100644 index 000000000000..b14ca8fd47e1 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperationsResultsLocation_Get.cs @@ -0,0 +1,425 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns operation results. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/locations/{location}/operationResults/{operationId}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoOperationsResultsLocation_Get")] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns operation results.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoOperationsResultsLocation_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Backing field for property. + private string _location; + + /// Azure location (region) name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Azure location (region) name.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Azure location (region) name.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Location { get => this._location; set => this._location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _operationId; + + /// The Guid of the operation ID + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The Guid of the operation ID")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The Guid of the operation ID", + SerializedName = @"operationId", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string OperationId { get => this._operationId; set => this._operationId = value; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnAccepted will be called before the regular onAccepted has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onAccepted method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnAccepted(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoOperationsResultsLocation_Get() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.OperationsResultsLocationGet(SubscriptionId, Location, OperationId, onOk, onAccepted, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,Location=Location,OperationId=OperationId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// a delegate that is called when the remote service returns 202 (Accepted). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onAccepted(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnAccepted(responseMessage, ref _returnNow); + // if overrideOnAccepted has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onAccepted - response for 202 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, Location=Location, OperationId=OperationId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperationsResultsLocation_GetViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperationsResultsLocation_GetViaIdentity.cs new file mode 100644 index 000000000000..83ee535a478c --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoOperationsResultsLocation_GetViaIdentity.cs @@ -0,0 +1,401 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns operation results. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/locations/{location}/operationResults/{operationId}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoOperationsResultsLocation_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns operation results.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoOperationsResultsLocation_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnAccepted will be called before the regular onAccepted has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onAccepted method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnAccepted(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoOperationsResultsLocation_GetViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.OperationsResultsLocationGetViaIdentity(InputObject.Id, onOk, onAccepted, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.Location) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.Location"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.OperationId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.OperationId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.OperationsResultsLocationGet(InputObject.SubscriptionId ?? null, InputObject.Location ?? null, InputObject.OperationId ?? null, onOk, onAccepted, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// a delegate that is called when the remote service returns 202 (Accepted). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onAccepted(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnAccepted(responseMessage, ref _returnNow); + // if overrideOnAccepted has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onAccepted - response for 202 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateEndpointConnection_Get.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateEndpointConnection_Get.cs new file mode 100644 index 000000000000..d921341b76e4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateEndpointConnection_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Gets a private endpoint connection. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/privateEndpointConnections/{privateEndpointConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoPrivateEndpointConnection_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Gets a private endpoint connection.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoPrivateEndpointConnection_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the private endpoint connection. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the private endpoint connection.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the private endpoint connection.", + SerializedName = @"privateEndpointConnectionName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PrivateEndpointConnectionName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoPrivateEndpointConnection_Get() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateEndpointConnectionsGet(SubscriptionId, ResourceGroupName, ClusterName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateEndpointConnection_GetViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateEndpointConnection_GetViaIdentity.cs new file mode 100644 index 000000000000..2f6ddfa85155 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateEndpointConnection_GetViaIdentity.cs @@ -0,0 +1,382 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Gets a private endpoint connection. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/privateEndpointConnections/{privateEndpointConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoPrivateEndpointConnection_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Gets a private endpoint connection.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoPrivateEndpointConnection_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoPrivateEndpointConnection_GetViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PrivateEndpointConnectionsGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.PrivateEndpointConnectionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PrivateEndpointConnectionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PrivateEndpointConnectionsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.PrivateEndpointConnectionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateEndpointConnection_List.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateEndpointConnection_List.cs new file mode 100644 index 000000000000..a30f72506a2d --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateEndpointConnection_List.cs @@ -0,0 +1,403 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns the list of private endpoint connections. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/privateEndpointConnections" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoPrivateEndpointConnection_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns the list of private endpoint connections.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoPrivateEndpointConnection_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoPrivateEndpointConnection_List() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateEndpointConnectionsList(SubscriptionId, ResourceGroupName, ClusterName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateLinkResource_Get.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateLinkResource_Get.cs new file mode 100644 index 000000000000..406ed417180b --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateLinkResource_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Gets a private link resource. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/privateLinkResources/{privateLinkResourceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoPrivateLinkResource_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Gets a private link resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoPrivateLinkResource_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the private link resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the private link resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the private link resource.", + SerializedName = @"privateLinkResourceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PrivateLinkResourceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoPrivateLinkResource_Get() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateLinkResourcesGet(SubscriptionId, ResourceGroupName, ClusterName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateLinkResource_GetViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateLinkResource_GetViaIdentity.cs new file mode 100644 index 000000000000..1acc1de855c4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateLinkResource_GetViaIdentity.cs @@ -0,0 +1,382 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Gets a private link resource. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/privateLinkResources/{privateLinkResourceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoPrivateLinkResource_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Gets a private link resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoPrivateLinkResource_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoPrivateLinkResource_GetViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PrivateLinkResourcesGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.PrivateLinkResourceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PrivateLinkResourceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PrivateLinkResourcesGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.PrivateLinkResourceName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateLinkResource_List.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateLinkResource_List.cs new file mode 100644 index 000000000000..02e43c830e91 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoPrivateLinkResource_List.cs @@ -0,0 +1,403 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns the list of private link resources. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/privateLinkResources" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoPrivateLinkResource_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateLinkResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns the list of private link resources.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoPrivateLinkResource_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoPrivateLinkResource_List() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateLinkResourcesList(SubscriptionId, ResourceGroupName, ClusterName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoScript_Get.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoScript_Get.cs new file mode 100644 index 000000000000..e5aba6ff3cc0 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoScript_Get.cs @@ -0,0 +1,431 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Gets a Kusto cluster database script. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scripts/{scriptName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoScript_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Gets a Kusto cluster database script.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoScript_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Kusto database script. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto database script.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto database script.", + SerializedName = @"scriptName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ScriptName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoScript_Get() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ScriptsGet(SubscriptionId, ResourceGroupName, ClusterName, DatabaseName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoScript_GetViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoScript_GetViaIdentity.cs new file mode 100644 index 000000000000..c22ebc0638a4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoScript_GetViaIdentity.cs @@ -0,0 +1,386 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Gets a Kusto cluster database script. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scripts/{scriptName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoScript_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Gets a Kusto cluster database script.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoScript_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoScript_GetViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ScriptsGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ScriptName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ScriptName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ScriptsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.ScriptName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoScript_List.cs b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoScript_List.cs new file mode 100644 index 000000000000..f6595f0966a8 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/GetAzKustoScript_List.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Returns the list of database scripts for given database. + /// + /// [OpenAPI] ListByDatabase=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scripts" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzKustoScript_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Returns the list of database scripts for given database.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class GetAzKustoScript_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzKustoScript_List() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ScriptsListByDatabase(SubscriptionId, ResourceGroupName, ClusterName, DatabaseName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDataConnectionValidation_Data.cs b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDataConnectionValidation_Data.cs new file mode 100644 index 000000000000..81ff510b5ea1 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDataConnectionValidation_Data.cs @@ -0,0 +1,498 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the data connection parameters are valid. + /// + /// [OpenAPI] DataConnectionValidation=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnectionValidation" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzKustoDataConnectionValidation_Data", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the data connection parameters are valid.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class InvokeAzKustoDataConnectionValidation_Data : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation _parameter; + + /// Class representing an data connection validation. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Class representing an data connection validation.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Class representing an data connection validation.", + SerializedName = @"parameters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation Parameter { get => this._parameter; set => this._parameter = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of InvokeAzKustoDataConnectionValidation_Data + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.InvokeAzKustoDataConnectionValidation_Data Clone() + { + var clone = new InvokeAzKustoDataConnectionValidation_Data(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.DatabaseName = this.DatabaseName; + clone.SubscriptionId = this.SubscriptionId; + clone.Parameter = this.Parameter; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InvokeAzKustoDataConnectionValidation_Data() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DataConnectionsDataConnectionValidation' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DataConnectionsDataConnectionValidation(ResourceGroupName, ClusterName, DatabaseName, SubscriptionId, Parameter, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,SubscriptionId=SubscriptionId,body=Parameter}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=Parameter }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=Parameter }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDataConnectionValidation_DataExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDataConnectionValidation_DataExpanded.cs new file mode 100644 index 000000000000..b36f2a7ca4c1 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDataConnectionValidation_DataExpanded.cs @@ -0,0 +1,525 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the data connection parameters are valid. + /// + /// [OpenAPI] DataConnectionValidation=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnectionValidation" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzKustoDataConnectionValidation_DataExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the data connection parameters are valid.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class InvokeAzKustoDataConnectionValidation_DataExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// The name of the data connection. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the data connection.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the data connection.", + SerializedName = @"dataConnectionName", + PossibleTypes = new [] { typeof(string) })] + public string DataConnectionName { get => ParametersBody.DataConnectionName ?? null; set => ParametersBody.DataConnectionName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Kind of the endpoint for the data connection + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Kind of the endpoint for the data connection")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Kind of the endpoint for the data connection", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind Kind { get => ParametersBody.Kind ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind)""); set => ParametersBody.Kind = value; } + + /// Resource location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => ParametersBody.Location ?? null; set => ParametersBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionValidation(); + + /// Class representing an data connection validation. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of InvokeAzKustoDataConnectionValidation_DataExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.InvokeAzKustoDataConnectionValidation_DataExpanded Clone() + { + var clone = new InvokeAzKustoDataConnectionValidation_DataExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.DatabaseName = this.DatabaseName; + clone.SubscriptionId = this.SubscriptionId; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InvokeAzKustoDataConnectionValidation_DataExpanded() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DataConnectionsDataConnectionValidation' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DataConnectionsDataConnectionValidation(ResourceGroupName, ClusterName, DatabaseName, SubscriptionId, ParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,SubscriptionId=SubscriptionId,body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDataConnectionValidation_DataViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDataConnectionValidation_DataViaIdentity.cs new file mode 100644 index 000000000000..176baaaa15c0 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDataConnectionValidation_DataViaIdentity.cs @@ -0,0 +1,463 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the data connection parameters are valid. + /// + /// [OpenAPI] DataConnectionValidation=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnectionValidation" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzKustoDataConnectionValidation_DataViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the data connection parameters are valid.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class InvokeAzKustoDataConnectionValidation_DataViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation _parameter; + + /// Class representing an data connection validation. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Class representing an data connection validation.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Class representing an data connection validation.", + SerializedName = @"parameters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation Parameter { get => this._parameter; set => this._parameter = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of InvokeAzKustoDataConnectionValidation_DataViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.InvokeAzKustoDataConnectionValidation_DataViaIdentity Clone() + { + var clone = new InvokeAzKustoDataConnectionValidation_DataViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.Parameter = this.Parameter; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InvokeAzKustoDataConnectionValidation_DataViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DataConnectionsDataConnectionValidation' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DataConnectionsDataConnectionValidationViaIdentity(InputObject.Id, Parameter, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DataConnectionsDataConnectionValidation(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.SubscriptionId ?? null, Parameter, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=Parameter}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=Parameter }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=Parameter }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDataConnectionValidation_DataViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDataConnectionValidation_DataViaIdentityExpanded.cs new file mode 100644 index 000000000000..a04738a7e79f --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDataConnectionValidation_DataViaIdentityExpanded.cs @@ -0,0 +1,492 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the data connection parameters are valid. + /// + /// [OpenAPI] DataConnectionValidation=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnectionValidation" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzKustoDataConnectionValidation_DataViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidationResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the data connection parameters are valid.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class InvokeAzKustoDataConnectionValidation_DataViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// The name of the data connection. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the data connection.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the data connection.", + SerializedName = @"dataConnectionName", + PossibleTypes = new [] { typeof(string) })] + public string DataConnectionName { get => ParametersBody.DataConnectionName ?? null; set => ParametersBody.DataConnectionName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Kind of the endpoint for the data connection + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Kind of the endpoint for the data connection")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Kind of the endpoint for the data connection", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind Kind { get => ParametersBody.Kind ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind)""); set => ParametersBody.Kind = value; } + + /// Resource location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => ParametersBody.Location ?? null; set => ParametersBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionValidation(); + + /// Class representing an data connection validation. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionValidation ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of InvokeAzKustoDataConnectionValidation_DataViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.InvokeAzKustoDataConnectionValidation_DataViaIdentityExpanded Clone() + { + var clone = new InvokeAzKustoDataConnectionValidation_DataViaIdentityExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InvokeAzKustoDataConnectionValidation_DataViaIdentityExpanded() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DataConnectionsDataConnectionValidation' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DataConnectionsDataConnectionValidationViaIdentity(InputObject.Id, ParametersBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DataConnectionsDataConnectionValidation(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.SubscriptionId ?? null, ParametersBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDetachClusterFollowerDatabase_Detach.cs b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDetachClusterFollowerDatabase_Detach.cs new file mode 100644 index 000000000000..605a82095659 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDetachClusterFollowerDatabase_Detach.cs @@ -0,0 +1,487 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Detaches all followers of a database owned by this cluster. + /// + /// [OpenAPI] DetachFollowerDatabases=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/detachFollowerDatabases" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzKustoDetachClusterFollowerDatabase_Detach", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Detaches all followers of a database owned by this cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class InvokeAzKustoDetachClusterFollowerDatabase_Detach : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition _followerDatabaseToRemove; + + /// A class representing follower database request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "A class representing follower database request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"A class representing follower database request.", + SerializedName = @"followerDatabaseToRemove", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition FollowerDatabaseToRemove { get => this._followerDatabaseToRemove; set => this._followerDatabaseToRemove = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of InvokeAzKustoDetachClusterFollowerDatabase_Detach + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.InvokeAzKustoDetachClusterFollowerDatabase_Detach Clone() + { + var clone = new InvokeAzKustoDetachClusterFollowerDatabase_Detach(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.SubscriptionId = this.SubscriptionId; + clone.FollowerDatabaseToRemove = this.FollowerDatabaseToRemove; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InvokeAzKustoDetachClusterFollowerDatabase_Detach() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersDetachFollowerDatabases' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersDetachFollowerDatabases(ResourceGroupName, ClusterName, SubscriptionId, FollowerDatabaseToRemove, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,SubscriptionId=SubscriptionId,body=FollowerDatabaseToRemove}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=FollowerDatabaseToRemove }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=FollowerDatabaseToRemove }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDetachClusterFollowerDatabase_DetachExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDetachClusterFollowerDatabase_DetachExpanded.cs new file mode 100644 index 000000000000..4a124969660f --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDetachClusterFollowerDatabase_DetachExpanded.cs @@ -0,0 +1,504 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Detaches all followers of a database owned by this cluster. + /// + /// [OpenAPI] DetachFollowerDatabases=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/detachFollowerDatabases" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzKustoDetachClusterFollowerDatabase_DetachExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Detaches all followers of a database owned by this cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class InvokeAzKustoDetachClusterFollowerDatabase_DetachExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Resource name of the attached database configuration in the follower cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Resource name of the attached database configuration in the follower cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Resource name of the attached database configuration in the follower cluster.", + SerializedName = @"attachedDatabaseConfigurationName", + PossibleTypes = new [] { typeof(string) })] + public string AttachedDatabaseConfigurationName { get => FollowerDatabaseToRemoveBody.AttachedDatabaseConfigurationName ?? null; set => FollowerDatabaseToRemoveBody.AttachedDatabaseConfigurationName = value; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Resource id of the cluster that follows a database owned by this cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Resource id of the cluster that follows a database owned by this cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Resource id of the cluster that follows a database owned by this cluster.", + SerializedName = @"clusterResourceId", + PossibleTypes = new [] { typeof(string) })] + public string ClusterResourceId { get => FollowerDatabaseToRemoveBody.ClusterResourceId ?? null; set => FollowerDatabaseToRemoveBody.ClusterResourceId = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition _followerDatabaseToRemoveBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.FollowerDatabaseDefinition(); + + /// A class representing follower database request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition FollowerDatabaseToRemoveBody { get => this._followerDatabaseToRemoveBody; set => this._followerDatabaseToRemoveBody = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of InvokeAzKustoDetachClusterFollowerDatabase_DetachExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.InvokeAzKustoDetachClusterFollowerDatabase_DetachExpanded Clone() + { + var clone = new InvokeAzKustoDetachClusterFollowerDatabase_DetachExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.FollowerDatabaseToRemoveBody = this.FollowerDatabaseToRemoveBody; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.SubscriptionId = this.SubscriptionId; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InvokeAzKustoDetachClusterFollowerDatabase_DetachExpanded() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersDetachFollowerDatabases' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersDetachFollowerDatabases(ResourceGroupName, ClusterName, SubscriptionId, FollowerDatabaseToRemoveBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,SubscriptionId=SubscriptionId,body=FollowerDatabaseToRemoveBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=FollowerDatabaseToRemoveBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=FollowerDatabaseToRemoveBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentity.cs new file mode 100644 index 000000000000..0d8ad922d155 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentity.cs @@ -0,0 +1,465 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Detaches all followers of a database owned by this cluster. + /// + /// [OpenAPI] DetachFollowerDatabases=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/detachFollowerDatabases" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzKustoDetachClusterFollowerDatabase_DetachViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Detaches all followers of a database owned by this cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition _followerDatabaseToRemove; + + /// A class representing follower database request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "A class representing follower database request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"A class representing follower database request.", + SerializedName = @"followerDatabaseToRemove", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition FollowerDatabaseToRemove { get => this._followerDatabaseToRemove; set => this._followerDatabaseToRemove = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentity Clone() + { + var clone = new InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.FollowerDatabaseToRemove = this.FollowerDatabaseToRemove; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersDetachFollowerDatabases' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClustersDetachFollowerDatabasesViaIdentity(InputObject.Id, FollowerDatabaseToRemove, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClustersDetachFollowerDatabases(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.SubscriptionId ?? null, FollowerDatabaseToRemove, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=FollowerDatabaseToRemove}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=FollowerDatabaseToRemove }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=FollowerDatabaseToRemove }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentityExpanded.cs new file mode 100644 index 000000000000..d903af3401b4 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentityExpanded.cs @@ -0,0 +1,481 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Detaches all followers of a database owned by this cluster. + /// + /// [OpenAPI] DetachFollowerDatabases=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/detachFollowerDatabases" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzKustoDetachClusterFollowerDatabase_DetachViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Detaches all followers of a database owned by this cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Resource name of the attached database configuration in the follower cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Resource name of the attached database configuration in the follower cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Resource name of the attached database configuration in the follower cluster.", + SerializedName = @"attachedDatabaseConfigurationName", + PossibleTypes = new [] { typeof(string) })] + public string AttachedDatabaseConfigurationName { get => FollowerDatabaseToRemoveBody.AttachedDatabaseConfigurationName ?? null; set => FollowerDatabaseToRemoveBody.AttachedDatabaseConfigurationName = value; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Resource id of the cluster that follows a database owned by this cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Resource id of the cluster that follows a database owned by this cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Resource id of the cluster that follows a database owned by this cluster.", + SerializedName = @"clusterResourceId", + PossibleTypes = new [] { typeof(string) })] + public string ClusterResourceId { get => FollowerDatabaseToRemoveBody.ClusterResourceId ?? null; set => FollowerDatabaseToRemoveBody.ClusterResourceId = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition _followerDatabaseToRemoveBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.FollowerDatabaseDefinition(); + + /// A class representing follower database request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IFollowerDatabaseDefinition FollowerDatabaseToRemoveBody { get => this._followerDatabaseToRemoveBody; set => this._followerDatabaseToRemoveBody = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentityExpanded Clone() + { + var clone = new InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentityExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.FollowerDatabaseToRemoveBody = this.FollowerDatabaseToRemoveBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public InvokeAzKustoDetachClusterFollowerDatabase_DetachViaIdentityExpanded() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersDetachFollowerDatabases' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClustersDetachFollowerDatabasesViaIdentity(InputObject.Id, FollowerDatabaseToRemoveBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClustersDetachFollowerDatabases(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.SubscriptionId ?? null, FollowerDatabaseToRemoveBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=FollowerDatabaseToRemoveBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=FollowerDatabaseToRemoveBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=FollowerDatabaseToRemoveBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDiagnoseClusterVirtualNetwork_Diagnose.cs b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDiagnoseClusterVirtualNetwork_Diagnose.cs new file mode 100644 index 000000000000..636fc99f0ad9 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDiagnoseClusterVirtualNetwork_Diagnose.cs @@ -0,0 +1,471 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// + /// Diagnoses network connectivity status for external resources on which the service is dependent on. + /// + /// + /// [OpenAPI] DiagnoseVirtualNetwork=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/diagnoseVirtualNetwork" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzKustoDiagnoseClusterVirtualNetwork_Diagnose", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Diagnoses network connectivity status for external resources on which the service is dependent on.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class InvokeAzKustoDiagnoseClusterVirtualNetwork_Diagnose : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of InvokeAzKustoDiagnoseClusterVirtualNetwork_Diagnose + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.InvokeAzKustoDiagnoseClusterVirtualNetwork_Diagnose Clone() + { + var clone = new InvokeAzKustoDiagnoseClusterVirtualNetwork_Diagnose(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.SubscriptionId = this.SubscriptionId; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InvokeAzKustoDiagnoseClusterVirtualNetwork_Diagnose() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersDiagnoseVirtualNetwork' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersDiagnoseVirtualNetwork(ResourceGroupName, ClusterName, SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / findings / + WriteObject((await response).Finding, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDiagnoseClusterVirtualNetwork_DiagnoseViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDiagnoseClusterVirtualNetwork_DiagnoseViaIdentity.cs new file mode 100644 index 000000000000..eca94b944308 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/InvokeAzKustoDiagnoseClusterVirtualNetwork_DiagnoseViaIdentity.cs @@ -0,0 +1,450 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// + /// Diagnoses network connectivity status for external resources on which the service is dependent on. + /// + /// + /// [OpenAPI] DiagnoseVirtualNetwork=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/diagnoseVirtualNetwork" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzKustoDiagnoseClusterVirtualNetwork_DiagnoseViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Diagnoses network connectivity status for external resources on which the service is dependent on.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class InvokeAzKustoDiagnoseClusterVirtualNetwork_DiagnoseViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of InvokeAzKustoDiagnoseClusterVirtualNetwork_DiagnoseViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.InvokeAzKustoDiagnoseClusterVirtualNetwork_DiagnoseViaIdentity Clone() + { + var clone = new InvokeAzKustoDiagnoseClusterVirtualNetwork_DiagnoseViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public InvokeAzKustoDiagnoseClusterVirtualNetwork_DiagnoseViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersDiagnoseVirtualNetwork' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClustersDiagnoseVirtualNetworkViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClustersDiagnoseVirtualNetwork(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.SubscriptionId ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / findings / + WriteObject((await response).Finding, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoAttachedDatabaseConfiguration_CreateExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoAttachedDatabaseConfiguration_CreateExpanded.cs new file mode 100644 index 000000000000..ef2019ffcc2f --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoAttachedDatabaseConfiguration_CreateExpanded.cs @@ -0,0 +1,612 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Creates or updates an attached database configuration. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/attachedDatabaseConfigurations/{attachedDatabaseConfigurationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzKustoAttachedDatabaseConfiguration_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Creates or updates an attached database configuration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class NewAzKustoAttachedDatabaseConfiguration_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The resource id of the cluster where the databases you would like to attach reside. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The resource id of the cluster where the databases you would like to attach reside.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource id of the cluster where the databases you would like to attach reside.", + SerializedName = @"clusterResourceId", + PossibleTypes = new [] { typeof(string) })] + public string ClusterResourceId { get => ParametersBody.ClusterResourceId ?? null; set => ParametersBody.ClusterResourceId = value; } + + /// + /// The name of the database which you would like to attach, use * if you want to follow all current and future databases. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the database which you would like to attach, use * if you want to follow all current and future databases.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the database which you would like to attach, use * if you want to follow all current and future databases.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + public string DatabaseName { get => ParametersBody.DatabaseName ?? null; set => ParametersBody.DatabaseName = value; } + + /// The default principals modification kind + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The default principals modification kind")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default principals modification kind", + SerializedName = @"defaultPrincipalsModificationKind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind DefaultPrincipalsModificationKind { get => ParametersBody.DefaultPrincipalsModificationKind ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DefaultPrincipalsModificationKind)""); set => ParametersBody.DefaultPrincipalsModificationKind = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Resource location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => ParametersBody.Location ?? null; set => ParametersBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the attached database configuration. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the attached database configuration.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the attached database configuration.", + SerializedName = @"attachedDatabaseConfigurationName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("AttachedDatabaseConfigurationName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfiguration(); + + /// Class representing an attached database configuration. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// List of external tables exclude from the follower database + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of external tables exclude from the follower database")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of external tables exclude from the follower database", + SerializedName = @"externalTablesToExclude", + PossibleTypes = new [] { typeof(string) })] + public string[] TableLevelSharingPropertyExternalTablesToExclude { get => ParametersBody.TableLevelSharingPropertyExternalTablesToExclude ?? null /* arrayOf */; set => ParametersBody.TableLevelSharingPropertyExternalTablesToExclude = value; } + + /// List of external tables to include in the follower database + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of external tables to include in the follower database")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of external tables to include in the follower database", + SerializedName = @"externalTablesToInclude", + PossibleTypes = new [] { typeof(string) })] + public string[] TableLevelSharingPropertyExternalTablesToInclude { get => ParametersBody.TableLevelSharingPropertyExternalTablesToInclude ?? null /* arrayOf */; set => ParametersBody.TableLevelSharingPropertyExternalTablesToInclude = value; } + + /// List of materialized views exclude from the follower database + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of materialized views exclude from the follower database")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of materialized views exclude from the follower database", + SerializedName = @"materializedViewsToExclude", + PossibleTypes = new [] { typeof(string) })] + public string[] TableLevelSharingPropertyMaterializedViewsToExclude { get => ParametersBody.TableLevelSharingPropertyMaterializedViewsToExclude ?? null /* arrayOf */; set => ParametersBody.TableLevelSharingPropertyMaterializedViewsToExclude = value; } + + /// List of materialized views to include in the follower database + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of materialized views to include in the follower database")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of materialized views to include in the follower database", + SerializedName = @"materializedViewsToInclude", + PossibleTypes = new [] { typeof(string) })] + public string[] TableLevelSharingPropertyMaterializedViewsToInclude { get => ParametersBody.TableLevelSharingPropertyMaterializedViewsToInclude ?? null /* arrayOf */; set => ParametersBody.TableLevelSharingPropertyMaterializedViewsToInclude = value; } + + /// List of tables to exclude from the follower database + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of tables to exclude from the follower database")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of tables to exclude from the follower database", + SerializedName = @"tablesToExclude", + PossibleTypes = new [] { typeof(string) })] + public string[] TableLevelSharingPropertyTablesToExclude { get => ParametersBody.TableLevelSharingPropertyTablesToExclude ?? null /* arrayOf */; set => ParametersBody.TableLevelSharingPropertyTablesToExclude = value; } + + /// List of tables to include in the follower database + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of tables to include in the follower database")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of tables to include in the follower database", + SerializedName = @"tablesToInclude", + PossibleTypes = new [] { typeof(string) })] + public string[] TableLevelSharingPropertyTablesToInclude { get => ParametersBody.TableLevelSharingPropertyTablesToInclude ?? null /* arrayOf */; set => ParametersBody.TableLevelSharingPropertyTablesToInclude = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzKustoAttachedDatabaseConfiguration_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.NewAzKustoAttachedDatabaseConfiguration_CreateExpanded Clone() + { + var clone = new NewAzKustoAttachedDatabaseConfiguration_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.Name = this.Name; + clone.SubscriptionId = this.SubscriptionId; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public NewAzKustoAttachedDatabaseConfiguration_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AttachedDatabaseConfigurationsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AttachedDatabaseConfigurationsCreateOrUpdate(ResourceGroupName, ClusterName, Name, SubscriptionId, ParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,Name=Name,SubscriptionId=SubscriptionId,body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, SubscriptionId=SubscriptionId, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, SubscriptionId=SubscriptionId, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfiguration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoClusterPrincipalAssignment_CreateExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoClusterPrincipalAssignment_CreateExpanded.cs new file mode 100644 index 000000000000..97b6e0c0c5bd --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoClusterPrincipalAssignment_CreateExpanded.cs @@ -0,0 +1,538 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Create a Kusto cluster principalAssignment. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/principalAssignments/{principalAssignmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzKustoClusterPrincipalAssignment_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Create a Kusto cluster principalAssignment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class NewAzKustoClusterPrincipalAssignment_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalAssignment(); + + /// Class representing a cluster principal assignment. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private string _principalAssignmentName; + + /// The name of the Kusto principalAssignment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto principalAssignment.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto principalAssignment.", + SerializedName = @"principalAssignmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string PrincipalAssignmentName { get => this._principalAssignmentName; set => this._principalAssignmentName = value; } + + /// + /// The principal ID assigned to the cluster principal. It can be a user email, application ID, or security group name. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The principal ID assigned to the cluster principal. It can be a user email, application ID, or security group name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID assigned to the cluster principal. It can be a user email, application ID, or security group name.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string PrincipalId { get => ParametersBody.PrincipalId ?? null; set => ParametersBody.PrincipalId = value; } + + /// Principal type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Principal type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Principal type.", + SerializedName = @"principalType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType PrincipalType { get => ParametersBody.PrincipalType ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType)""); set => ParametersBody.PrincipalType = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Cluster principal role. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Cluster principal role.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Cluster principal role.", + SerializedName = @"role", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole Role { get => ParametersBody.Role ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterPrincipalRole)""); set => ParametersBody.Role = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// The tenant id of the principal + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The tenant id of the principal")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant id of the principal", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string TenantId { get => ParametersBody.TenantId ?? null; set => ParametersBody.TenantId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzKustoClusterPrincipalAssignment_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.NewAzKustoClusterPrincipalAssignment_CreateExpanded Clone() + { + var clone = new NewAzKustoClusterPrincipalAssignment_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.PrincipalAssignmentName = this.PrincipalAssignmentName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public NewAzKustoClusterPrincipalAssignment_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClusterPrincipalAssignmentsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClusterPrincipalAssignmentsCreateOrUpdate(SubscriptionId, ResourceGroupName, ClusterName, PrincipalAssignmentName, ParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,PrincipalAssignmentName=PrincipalAssignmentName,body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, PrincipalAssignmentName=PrincipalAssignmentName, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, PrincipalAssignmentName=PrincipalAssignmentName, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignment + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoCluster_CreateExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoCluster_CreateExpanded.cs new file mode 100644 index 000000000000..53dad50080d1 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoCluster_CreateExpanded.cs @@ -0,0 +1,907 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Create or update a Kusto cluster. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzKustoCluster_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Create or update a Kusto cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class NewAzKustoCluster_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// The cluster's accepted audiences. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The cluster's accepted audiences.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The cluster's accepted audiences.", + SerializedName = @"acceptedAudiences", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[] AcceptedAudience { get => ParametersBody.AcceptedAudience ?? null /* arrayOf */; set => ParametersBody.AcceptedAudience = value; } + + /// List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster.", + SerializedName = @"allowedFqdnList", + PossibleTypes = new [] { typeof(string) })] + public string[] AllowedFqdnList { get => ParametersBody.AllowedFqdnList ?? null /* arrayOf */; set => ParametersBody.AllowedFqdnList = value; } + + /// The list of ips in the format of CIDR allowed to connect to the cluster. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of ips in the format of CIDR allowed to connect to the cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of ips in the format of CIDR allowed to connect to the cluster.", + SerializedName = @"allowedIpRangeList", + PossibleTypes = new [] { typeof(string) })] + public string[] AllowedIPRangeList { get => ParametersBody.AllowedIPRangeList ?? null /* arrayOf */; set => ParametersBody.AllowedIPRangeList = value; } + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many + /// days). + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days).")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days).", + SerializedName = @"enableAutoStop", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnableAutoStop { get => ParametersBody.EnableAutoStop ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.EnableAutoStop = value; } + + /// A boolean value that indicates if the cluster's disks are encrypted. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicates if the cluster's disks are encrypted.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the cluster's disks are encrypted.", + SerializedName = @"enableDiskEncryption", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnableDiskEncryption { get => ParametersBody.EnableDiskEncryption ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.EnableDiskEncryption = value; } + + /// A boolean value that indicates if double encryption is enabled. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicates if double encryption is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if double encryption is enabled.", + SerializedName = @"enableDoubleEncryption", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnableDoubleEncryption { get => ParametersBody.EnableDoubleEncryption ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.EnableDoubleEncryption = value; } + + /// A boolean value that indicates if the purge operations are enabled. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicates if the purge operations are enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the purge operations are enabled.", + SerializedName = @"enablePurge", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnablePurge { get => ParametersBody.EnablePurge ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.EnablePurge = value; } + + /// A boolean value that indicates if the streaming ingest is enabled. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicates if the streaming ingest is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the streaming ingest is enabled.", + SerializedName = @"enableStreamingIngest", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnableStreamingIngest { get => ParametersBody.EnableStreamingIngest ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.EnableStreamingIngest = value; } + + /// The engine type + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The engine type")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The engine type", + SerializedName = @"engineType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType EngineType { get => ParametersBody.EngineType ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType)""); set => ParametersBody.EngineType = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// + /// 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 all identities. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "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 all identities.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + 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 all identities.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType IdentityType { get => ParametersBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType)""); set => ParametersBody.IdentityType = value; } + + /// + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities IdentityUserAssignedIdentity { get => ParametersBody.IdentityUserAssignedIdentity ?? null /* object */; set => ParametersBody.IdentityUserAssignedIdentity = value; } + + /// Backing field for property. + private string _ifMatch; + + /// + /// The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen ETag value to + /// prevent accidentally overwriting concurrent changes. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen ETag value to prevent accidentally overwriting concurrent changes.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen ETag value to prevent accidentally overwriting concurrent changes.", + SerializedName = @"If-Match", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Header)] + public string IfMatch { get => this._ifMatch; set => this._ifMatch = value; } + + /// Backing field for property. + private string _ifNoneMatch; + + /// + /// Set to '*' to allow a new cluster to be created, but to prevent updating an existing cluster. Other values will result + /// in a 412 Pre-condition Failed response. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Set to '*' to allow a new cluster to be created, but to prevent updating an existing cluster. Other values will result in a 412 Pre-condition Failed response.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Set to '*' to allow a new cluster to be created, but to prevent updating an existing cluster. Other values will result in a 412 Pre-condition Failed response.", + SerializedName = @"If-None-Match", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Header)] + public string IfNoneMatch { get => this._ifNoneMatch; set => this._ifNoneMatch = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// The name of the key vault key. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the key vault key.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the key vault key.", + SerializedName = @"keyName", + PossibleTypes = new [] { typeof(string) })] + public string KeyVaultPropertyKeyName { get => ParametersBody.KeyVaultPropertyKeyName ?? null; set => ParametersBody.KeyVaultPropertyKeyName = value; } + + /// The Uri of the key vault. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The Uri of the key vault.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Uri of the key vault.", + SerializedName = @"keyVaultUri", + PossibleTypes = new [] { typeof(string) })] + public string KeyVaultPropertyKeyVaultUri { get => ParametersBody.KeyVaultPropertyKeyVaultUri ?? null; set => ParametersBody.KeyVaultPropertyKeyVaultUri = value; } + + /// The version of the key vault key. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The version of the key vault key.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the key vault key.", + SerializedName = @"keyVersion", + PossibleTypes = new [] { typeof(string) })] + public string KeyVaultPropertyKeyVersion { get => ParametersBody.KeyVaultPropertyKeyVersion ?? null; set => ParametersBody.KeyVaultPropertyKeyVersion = value; } + + /// The user assigned identity (ARM resource id) that has access to the key. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user assigned identity (ARM resource id) that has access to the key.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user assigned identity (ARM resource id) that has access to the key.", + SerializedName = @"userIdentity", + PossibleTypes = new [] { typeof(string) })] + public string KeyVaultPropertyUserIdentity { get => ParametersBody.KeyVaultPropertyUserIdentity ?? null; set => ParametersBody.KeyVaultPropertyUserIdentity = value; } + + /// The geo-location where the resource lives + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The geo-location where the resource lives")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The geo-location where the resource lives", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => ParametersBody.Location ?? null; set => ParametersBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ClusterName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// A boolean value that indicate if the optimized autoscale feature is enabled or not. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicate if the optimized autoscale feature is enabled or not.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicate if the optimized autoscale feature is enabled or not.", + SerializedName = @"isEnabled", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter OptimizedAutoscaleIsEnabled { get => ParametersBody.OptimizedAutoscaleIsEnabled ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.OptimizedAutoscaleIsEnabled = value; } + + /// Maximum allowed instances count. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum allowed instances count.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum allowed instances count.", + SerializedName = @"maximum", + PossibleTypes = new [] { typeof(int) })] + public int OptimizedAutoscaleMaximum { get => ParametersBody.OptimizedAutoscaleMaximum ?? default(int); set => ParametersBody.OptimizedAutoscaleMaximum = value; } + + /// Minimum allowed instances count. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Minimum allowed instances count.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum allowed instances count.", + SerializedName = @"minimum", + PossibleTypes = new [] { typeof(int) })] + public int OptimizedAutoscaleMinimum { get => ParametersBody.OptimizedAutoscaleMinimum ?? default(int); set => ParametersBody.OptimizedAutoscaleMinimum = value; } + + /// The version of the template defined, for instance 1. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The version of the template defined, for instance 1.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the template defined, for instance 1.", + SerializedName = @"version", + PossibleTypes = new [] { typeof(int) })] + public int OptimizedAutoscaleVersion { get => ParametersBody.OptimizedAutoscaleVersion ?? default(int); set => ParametersBody.OptimizedAutoscaleVersion = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Cluster(); + + /// Class representing a Kusto cluster. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6)", + SerializedName = @"publicIPType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType PublicIPType { get => ParametersBody.PublicIPType ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType)""); set => ParametersBody.PublicIPType = value; } + + /// + /// Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster + /// is allowed + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster is allowed")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster is allowed", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess PublicNetworkAccess { get => ParametersBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess)""); set => ParametersBody.PublicNetworkAccess = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// + /// Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled' + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled'")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled'", + SerializedName = @"restrictOutboundNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag RestrictOutboundNetworkAccess { get => ParametersBody.RestrictOutboundNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag)""); set => ParametersBody.RestrictOutboundNetworkAccess = value; } + + /// The number of instances of the cluster. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of instances of the cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of instances of the cluster.", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + public int SkuCapacity { get => ParametersBody.SkuCapacity ?? default(int); set => ParametersBody.SkuCapacity = value; } + + /// SKU name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "SKU name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"SKU name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName SkuName { get => ParametersBody.SkuName; set => ParametersBody.SkuName = value; } + + /// SKU tier. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "SKU tier.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"SKU tier.", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier SkuTier { get => ParametersBody.SkuTier; set => ParametersBody.SkuTier = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Resource tags. + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource tags.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api10.ITrackedResourceTags Tag { get => ParametersBody.Tag ?? null /* object */; set => ParametersBody.Tag = value; } + + /// The cluster's external tenants. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The cluster's external tenants.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The cluster's external tenants.", + SerializedName = @"trustedExternalTenants", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[] TrustedExternalTenant { get => ParametersBody.TrustedExternalTenant ?? null /* arrayOf */; set => ParametersBody.TrustedExternalTenant = value; } + + /// Virtual Cluster graduation properties + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Virtual Cluster graduation properties")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Virtual Cluster graduation properties", + SerializedName = @"virtualClusterGraduationProperties", + PossibleTypes = new [] { typeof(string) })] + public string VirtualClusterGraduationProperty { get => ParametersBody.VirtualClusterGraduationProperty ?? null; set => ParametersBody.VirtualClusterGraduationProperty = value; } + + /// Data management's service public IP address resource id. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Data management's service public IP address resource id.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Data management's service public IP address resource id.", + SerializedName = @"dataManagementPublicIpId", + PossibleTypes = new [] { typeof(string) })] + public string VirtualNetworkConfigurationDataManagementPublicIPId { get => ParametersBody.VirtualNetworkConfigurationDataManagementPublicIPId ?? null; set => ParametersBody.VirtualNetworkConfigurationDataManagementPublicIPId = value; } + + /// Engine service's public IP address resource id. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Engine service's public IP address resource id.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Engine service's public IP address resource id.", + SerializedName = @"enginePublicIpId", + PossibleTypes = new [] { typeof(string) })] + public string VirtualNetworkConfigurationEnginePublicIPId { get => ParametersBody.VirtualNetworkConfigurationEnginePublicIPId ?? null; set => ParametersBody.VirtualNetworkConfigurationEnginePublicIPId = value; } + + /// The subnet resource id. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The subnet resource id.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The subnet resource id.", + SerializedName = @"subnetId", + PossibleTypes = new [] { typeof(string) })] + public string VirtualNetworkConfigurationSubnetId { get => ParametersBody.VirtualNetworkConfigurationSubnetId ?? null; set => ParametersBody.VirtualNetworkConfigurationSubnetId = value; } + + /// The availability zones of the cluster. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The availability zones of the cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The availability zones of the cluster.", + SerializedName = @"zones", + PossibleTypes = new [] { typeof(string) })] + public string[] Zone { get => ParametersBody.Zone ?? null /* arrayOf */; set => ParametersBody.Zone = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzKustoCluster_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.NewAzKustoCluster_CreateExpanded Clone() + { + var clone = new NewAzKustoCluster_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + clone.IfMatch = this.IfMatch; + clone.IfNoneMatch = this.IfNoneMatch; + clone.SubscriptionId = this.SubscriptionId; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public NewAzKustoCluster_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersCreateOrUpdate(ResourceGroupName, Name, this.InvocationInformation.BoundParameters.ContainsKey("IfMatch") ? IfMatch : null, this.InvocationInformation.BoundParameters.ContainsKey("IfNoneMatch") ? IfNoneMatch : null, SubscriptionId, ParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,Name=Name,IfMatch=this.InvocationInformation.BoundParameters.ContainsKey("IfMatch") ? IfMatch : null,IfNoneMatch=this.InvocationInformation.BoundParameters.ContainsKey("IfNoneMatch") ? IfNoneMatch : null,SubscriptionId=SubscriptionId,body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, Name=Name, IfMatch=this.InvocationInformation.BoundParameters.ContainsKey("IfMatch") ? IfMatch : null, IfNoneMatch=this.InvocationInformation.BoundParameters.ContainsKey("IfNoneMatch") ? IfNoneMatch : null, SubscriptionId=SubscriptionId, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, Name=Name, IfMatch=this.InvocationInformation.BoundParameters.ContainsKey("IfMatch") ? IfMatch : null, IfNoneMatch=this.InvocationInformation.BoundParameters.ContainsKey("IfNoneMatch") ? IfNoneMatch : null, SubscriptionId=SubscriptionId, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoDataConnection_CreateExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoDataConnection_CreateExpanded.cs new file mode 100644 index 000000000000..aca1b1041919 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoDataConnection_CreateExpanded.cs @@ -0,0 +1,529 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Creates or updates a data connection. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnections/{dataConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzKustoDataConnection_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Creates or updates a data connection.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class NewAzKustoDataConnection_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Kind of the endpoint for the data connection + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Kind of the endpoint for the data connection")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Kind of the endpoint for the data connection", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind Kind { get => ParametersBody.Kind; set => ParametersBody.Kind = value; } + + /// Resource location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => ParametersBody.Location ?? null; set => ParametersBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the data connection. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the data connection.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the data connection.", + SerializedName = @"dataConnectionName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DataConnectionName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection(); + + /// Class representing an data connection. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzKustoDataConnection_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.NewAzKustoDataConnection_CreateExpanded Clone() + { + var clone = new NewAzKustoDataConnection_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.DatabaseName = this.DatabaseName; + clone.Name = this.Name; + clone.SubscriptionId = this.SubscriptionId; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public NewAzKustoDataConnection_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DataConnectionsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DataConnectionsCreateOrUpdate(ResourceGroupName, ClusterName, DatabaseName, Name, SubscriptionId, ParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,Name=Name,SubscriptionId=SubscriptionId,body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, Name=Name, SubscriptionId=SubscriptionId, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, Name=Name, SubscriptionId=SubscriptionId, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoDatabasePrincipalAssignment_CreateExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoDatabasePrincipalAssignment_CreateExpanded.cs new file mode 100644 index 000000000000..c300ee3c149a --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoDatabasePrincipalAssignment_CreateExpanded.cs @@ -0,0 +1,553 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Creates a Kusto cluster database principalAssignment. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/principalAssignments/{principalAssignmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzKustoDatabasePrincipalAssignment_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Creates a Kusto cluster database principalAssignment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class NewAzKustoDatabasePrincipalAssignment_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalAssignment(); + + /// Class representing a database principal assignment. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private string _principalAssignmentName; + + /// The name of the Kusto principalAssignment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto principalAssignment.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto principalAssignment.", + SerializedName = @"principalAssignmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string PrincipalAssignmentName { get => this._principalAssignmentName; set => this._principalAssignmentName = value; } + + /// + /// The principal ID assigned to the database principal. It can be a user email, application ID, or security group name. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The principal ID assigned to the database principal. It can be a user email, application ID, or security group name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID assigned to the database principal. It can be a user email, application ID, or security group name.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string PrincipalId { get => ParametersBody.PrincipalId ?? null; set => ParametersBody.PrincipalId = value; } + + /// Principal type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Principal type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Principal type.", + SerializedName = @"principalType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType PrincipalType { get => ParametersBody.PrincipalType ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PrincipalType)""); set => ParametersBody.PrincipalType = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Database principal role. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Database principal role.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Database principal role.", + SerializedName = @"role", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole Role { get => ParametersBody.Role ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DatabasePrincipalRole)""); set => ParametersBody.Role = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// The tenant id of the principal + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The tenant id of the principal")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant id of the principal", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string TenantId { get => ParametersBody.TenantId ?? null; set => ParametersBody.TenantId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzKustoDatabasePrincipalAssignment_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.NewAzKustoDatabasePrincipalAssignment_CreateExpanded Clone() + { + var clone = new NewAzKustoDatabasePrincipalAssignment_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.DatabaseName = this.DatabaseName; + clone.PrincipalAssignmentName = this.PrincipalAssignmentName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public NewAzKustoDatabasePrincipalAssignment_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasePrincipalAssignmentsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasePrincipalAssignmentsCreateOrUpdate(SubscriptionId, ResourceGroupName, ClusterName, DatabaseName, PrincipalAssignmentName, ParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,PrincipalAssignmentName=PrincipalAssignmentName,body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, PrincipalAssignmentName=PrincipalAssignmentName, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, PrincipalAssignmentName=PrincipalAssignmentName, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignment + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoDatabase_CreateExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoDatabase_CreateExpanded.cs new file mode 100644 index 000000000000..c64b2b2cd2bf --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoDatabase_CreateExpanded.cs @@ -0,0 +1,514 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Creates or updates a database. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzKustoDatabase_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Creates or updates a database.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class NewAzKustoDatabase_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Kind of the database + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Kind of the database")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Kind of the database", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind Kind { get => ParametersBody.Kind; set => ParametersBody.Kind = value; } + + /// Resource location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => ParametersBody.Location ?? null; set => ParametersBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DatabaseName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Database(); + + /// Class representing a Kusto database. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzKustoDatabase_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.NewAzKustoDatabase_CreateExpanded Clone() + { + var clone = new NewAzKustoDatabase_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.Name = this.Name; + clone.SubscriptionId = this.SubscriptionId; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public NewAzKustoDatabase_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasesCreateOrUpdate(ResourceGroupName, ClusterName, Name, SubscriptionId, ParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,Name=Name,SubscriptionId=SubscriptionId,body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, SubscriptionId=SubscriptionId, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, SubscriptionId=SubscriptionId, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoManagedPrivateEndpoint_CreateExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoManagedPrivateEndpoint_CreateExpanded.cs new file mode 100644 index 000000000000..f0baa77381e5 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoManagedPrivateEndpoint_CreateExpanded.cs @@ -0,0 +1,537 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Creates a managed private endpoint. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpoints/{managedPrivateEndpointName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzKustoManagedPrivateEndpoint_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Creates a managed private endpoint.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class NewAzKustoManagedPrivateEndpoint_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// The groupId in which the managed private endpoint is created. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The groupId in which the managed private endpoint is created.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The groupId in which the managed private endpoint is created.", + SerializedName = @"groupId", + PossibleTypes = new [] { typeof(string) })] + public string GroupId { get => ParametersBody.GroupId ?? null; set => ParametersBody.GroupId = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the managed private endpoint. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the managed private endpoint.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the managed private endpoint.", + SerializedName = @"managedPrivateEndpointName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ManagedPrivateEndpointName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpoint(); + + /// Class representing a managed private endpoint. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// + /// The ARM resource ID of the resource for which the managed private endpoint is created. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The ARM resource ID of the resource for which the managed private endpoint is created.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ARM resource ID of the resource for which the managed private endpoint is created.", + SerializedName = @"privateLinkResourceId", + PossibleTypes = new [] { typeof(string) })] + public string PrivateLinkResourceId { get => ParametersBody.PrivateLinkResourceId ?? null; set => ParametersBody.PrivateLinkResourceId = value; } + + /// The region of the resource to which the managed private endpoint is created. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The region of the resource to which the managed private endpoint is created.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The region of the resource to which the managed private endpoint is created.", + SerializedName = @"privateLinkResourceRegion", + PossibleTypes = new [] { typeof(string) })] + public string PrivateLinkResourceRegion { get => ParametersBody.PrivateLinkResourceRegion ?? null; set => ParametersBody.PrivateLinkResourceRegion = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// The user request message. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user request message.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user request message.", + SerializedName = @"requestMessage", + PossibleTypes = new [] { typeof(string) })] + public string RequestMessage { get => ParametersBody.RequestMessage ?? null; set => ParametersBody.RequestMessage = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzKustoManagedPrivateEndpoint_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.NewAzKustoManagedPrivateEndpoint_CreateExpanded Clone() + { + var clone = new NewAzKustoManagedPrivateEndpoint_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public NewAzKustoManagedPrivateEndpoint_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedPrivateEndpointsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedPrivateEndpointsCreateOrUpdate(SubscriptionId, ResourceGroupName, ClusterName, Name, ParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,Name=Name,body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoPrivateEndpointConnection_CreateExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoPrivateEndpointConnection_CreateExpanded.cs new file mode 100644 index 000000000000..8e809b345796 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoPrivateEndpointConnection_CreateExpanded.cs @@ -0,0 +1,513 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Approve or reject a private endpoint connection with a given name. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/privateEndpointConnections/{privateEndpointConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzKustoPrivateEndpointConnection_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Approve or reject a private endpoint connection with a given name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class NewAzKustoPrivateEndpointConnection_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the private endpoint connection. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the private endpoint connection.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the private endpoint connection.", + SerializedName = @"privateEndpointConnectionName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PrivateEndpointConnectionName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.PrivateEndpointConnection(); + + /// A private endpoint connection + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The private link service connection description. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The private link service connection description.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The private link service connection description.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string PrivateLinkServiceConnectionStateDescription { get => ParametersBody.PrivateLinkServiceConnectionStateDescription ?? null; set => ParametersBody.PrivateLinkServiceConnectionStateDescription = value; } + + /// The private link service connection status. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The private link service connection status.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The private link service connection status.", + SerializedName = @"status", + PossibleTypes = new [] { typeof(string) })] + public string PrivateLinkServiceConnectionStateStatus { get => ParametersBody.PrivateLinkServiceConnectionStateStatus ?? null; set => ParametersBody.PrivateLinkServiceConnectionStateStatus = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzKustoPrivateEndpointConnection_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.NewAzKustoPrivateEndpointConnection_CreateExpanded Clone() + { + var clone = new NewAzKustoPrivateEndpointConnection_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public NewAzKustoPrivateEndpointConnection_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PrivateEndpointConnectionsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateEndpointConnectionsCreateOrUpdate(SubscriptionId, ResourceGroupName, ClusterName, Name, ParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,Name=Name,body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IPrivateEndpointConnection + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoScript_CreateExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoScript_CreateExpanded.cs new file mode 100644 index 000000000000..9c8cf218b8ea --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/NewAzKustoScript_CreateExpanded.cs @@ -0,0 +1,568 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Creates a Kusto database script. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scripts/{scriptName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzKustoScript_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Creates a Kusto database script.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class NewAzKustoScript_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Flag that indicates whether to continue if one of the command fails. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Flag that indicates whether to continue if one of the command fails.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Flag that indicates whether to continue if one of the command fails.", + SerializedName = @"continueOnErrors", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ContinueOnError { get => ParametersBody.ContinueOnError ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.ContinueOnError = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// A unique string. If changed the script will be applied again. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A unique string. If changed the script will be applied again.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A unique string. If changed the script will be applied again.", + SerializedName = @"forceUpdateTag", + PossibleTypes = new [] { typeof(string) })] + public string ForceUpdateTag { get => ParametersBody.ForceUpdateTag ?? null; set => ParametersBody.ForceUpdateTag = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Kusto database script. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto database script.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto database script.", + SerializedName = @"scriptName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ScriptName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Script(); + + /// Class representing a database script. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// + /// The script content. This property should be used when the script is provide inline and not through file in a SA. Must + /// not be used together with scriptUrl and scriptUrlSasToken properties. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The script content. This property should be used when the script is provide inline and not through file in a SA. Must not be used together with scriptUrl and scriptUrlSasToken properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The script content. This property should be used when the script is provide inline and not through file in a SA. Must not be used together with scriptUrl and scriptUrlSasToken properties.", + SerializedName = @"scriptContent", + PossibleTypes = new [] { typeof(string) })] + public string ScriptContent { get => ParametersBody.Content ?? null; set => ParametersBody.Content = value; } + + /// + /// The url to the KQL script blob file. Must not be used together with scriptContent property + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The url to the KQL script blob file. Must not be used together with scriptContent property")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The url to the KQL script blob file. Must not be used together with scriptContent property", + SerializedName = @"scriptUrl", + PossibleTypes = new [] { typeof(string) })] + public string ScriptUrl { get => ParametersBody.Url ?? null; set => ParametersBody.Url = value; } + + /// + /// The SaS token that provide read access to the file which contain the script. Must be provided when using scriptUrl property. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The SaS token that provide read access to the file which contain the script. Must be provided when using scriptUrl property.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The SaS token that provide read access to the file which contain the script. Must be provided when using scriptUrl property.", + SerializedName = @"scriptUrlSasToken", + PossibleTypes = new [] { typeof(string) })] + public string ScriptUrlSasToken { get => ParametersBody.UrlSasToken ?? null; set => ParametersBody.UrlSasToken = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzKustoScript_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.NewAzKustoScript_CreateExpanded Clone() + { + var clone = new NewAzKustoScript_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.DatabaseName = this.DatabaseName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public NewAzKustoScript_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ScriptsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ScriptsCreateOrUpdate(SubscriptionId, ResourceGroupName, ClusterName, DatabaseName, Name, ParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,Name=Name,body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, Name=Name, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, Name=Name, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoAttachedDatabaseConfiguration_Delete.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoAttachedDatabaseConfiguration_Delete.cs new file mode 100644 index 000000000000..a7504dbdefe5 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoAttachedDatabaseConfiguration_Delete.cs @@ -0,0 +1,523 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes the attached database configuration with the given name. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/attachedDatabaseConfigurations/{attachedDatabaseConfigurationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoAttachedDatabaseConfiguration_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes the attached database configuration with the given name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoAttachedDatabaseConfiguration_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the attached database configuration. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the attached database configuration.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the attached database configuration.", + SerializedName = @"attachedDatabaseConfigurationName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("AttachedDatabaseConfigurationName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzKustoAttachedDatabaseConfiguration_Delete + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoAttachedDatabaseConfiguration_Delete Clone() + { + var clone = new RemoveAzKustoAttachedDatabaseConfiguration_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.Name = this.Name; + clone.SubscriptionId = this.SubscriptionId; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AttachedDatabaseConfigurationsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AttachedDatabaseConfigurationsDelete(ResourceGroupName, ClusterName, Name, SubscriptionId, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,Name=Name,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoAttachedDatabaseConfiguration_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoAttachedDatabaseConfiguration_DeleteViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoAttachedDatabaseConfiguration_DeleteViaIdentity.cs new file mode 100644 index 000000000000..c507e2bcc565 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoAttachedDatabaseConfiguration_DeleteViaIdentity.cs @@ -0,0 +1,489 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes the attached database configuration with the given name. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/attachedDatabaseConfigurations/{attachedDatabaseConfigurationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoAttachedDatabaseConfiguration_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes the attached database configuration with the given name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoAttachedDatabaseConfiguration_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzKustoAttachedDatabaseConfiguration_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoAttachedDatabaseConfiguration_DeleteViaIdentity Clone() + { + var clone = new RemoveAzKustoAttachedDatabaseConfiguration_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AttachedDatabaseConfigurationsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.AttachedDatabaseConfigurationsDeleteViaIdentity(InputObject.Id, onOk, onNoContent, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AttachedDatabaseConfigurationName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AttachedDatabaseConfigurationName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.AttachedDatabaseConfigurationsDelete(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.AttachedDatabaseConfigurationName ?? null, InputObject.SubscriptionId ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoAttachedDatabaseConfiguration_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterLanguageExtension_Remove.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterLanguageExtension_Remove.cs new file mode 100644 index 000000000000..55433e2504eb --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterLanguageExtension_Remove.cs @@ -0,0 +1,487 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Remove a list of language extensions that can run within KQL queries. + /// + /// [OpenAPI] RemoveLanguageExtensions=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/removeLanguageExtensions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoClusterLanguageExtension_Remove", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Remove a list of language extensions that can run within KQL queries.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoClusterLanguageExtension_Remove : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList _languageExtensionsToRemove; + + /// The list of language extension objects. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The list of language extension objects.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The list of language extension objects.", + SerializedName = @"languageExtensionsToRemove", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList LanguageExtensionsToRemove { get => this._languageExtensionsToRemove; set => this._languageExtensionsToRemove = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzKustoClusterLanguageExtension_Remove + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoClusterLanguageExtension_Remove Clone() + { + var clone = new RemoveAzKustoClusterLanguageExtension_Remove(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.LanguageExtensionsToRemove = this.LanguageExtensionsToRemove; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersRemoveLanguageExtensions' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersRemoveLanguageExtensions(SubscriptionId, ResourceGroupName, ClusterName, LanguageExtensionsToRemove, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,body=LanguageExtensionsToRemove}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoClusterLanguageExtension_Remove() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, body=LanguageExtensionsToRemove }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, body=LanguageExtensionsToRemove }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterLanguageExtension_RemoveExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterLanguageExtension_RemoveExpanded.cs new file mode 100644 index 000000000000..5ffc801affa8 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterLanguageExtension_RemoveExpanded.cs @@ -0,0 +1,492 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Remove a list of language extensions that can run within KQL queries. + /// + /// [OpenAPI] RemoveLanguageExtensions=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/removeLanguageExtensions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoClusterLanguageExtension_RemoveExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Remove a list of language extensions that can run within KQL queries.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoClusterLanguageExtension_RemoveExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList _languageExtensionsToRemoveBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionsList(); + + /// The list of language extension objects. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList LanguageExtensionsToRemoveBody { get => this._languageExtensionsToRemoveBody; set => this._languageExtensionsToRemoveBody = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// The list of language extensions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of language extensions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of language extensions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] Value { get => LanguageExtensionsToRemoveBody.Value ?? null /* arrayOf */; set => LanguageExtensionsToRemoveBody.Value = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzKustoClusterLanguageExtension_RemoveExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoClusterLanguageExtension_RemoveExpanded Clone() + { + var clone = new RemoveAzKustoClusterLanguageExtension_RemoveExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.LanguageExtensionsToRemoveBody = this.LanguageExtensionsToRemoveBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersRemoveLanguageExtensions' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersRemoveLanguageExtensions(SubscriptionId, ResourceGroupName, ClusterName, LanguageExtensionsToRemoveBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,body=LanguageExtensionsToRemoveBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoClusterLanguageExtension_RemoveExpanded() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, body=LanguageExtensionsToRemoveBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, body=LanguageExtensionsToRemoveBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterLanguageExtension_RemoveViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterLanguageExtension_RemoveViaIdentity.cs new file mode 100644 index 000000000000..68c276c77729 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterLanguageExtension_RemoveViaIdentity.cs @@ -0,0 +1,463 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Remove a list of language extensions that can run within KQL queries. + /// + /// [OpenAPI] RemoveLanguageExtensions=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/removeLanguageExtensions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoClusterLanguageExtension_RemoveViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Remove a list of language extensions that can run within KQL queries.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoClusterLanguageExtension_RemoveViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList _languageExtensionsToRemove; + + /// The list of language extension objects. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The list of language extension objects.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The list of language extension objects.", + SerializedName = @"languageExtensionsToRemove", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList LanguageExtensionsToRemove { get => this._languageExtensionsToRemove; set => this._languageExtensionsToRemove = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzKustoClusterLanguageExtension_RemoveViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoClusterLanguageExtension_RemoveViaIdentity Clone() + { + var clone = new RemoveAzKustoClusterLanguageExtension_RemoveViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.LanguageExtensionsToRemove = this.LanguageExtensionsToRemove; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersRemoveLanguageExtensions' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClustersRemoveLanguageExtensionsViaIdentity(InputObject.Id, LanguageExtensionsToRemove, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClustersRemoveLanguageExtensions(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, LanguageExtensionsToRemove, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=LanguageExtensionsToRemove}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoClusterLanguageExtension_RemoveViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=LanguageExtensionsToRemove }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=LanguageExtensionsToRemove }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterLanguageExtension_RemoveViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterLanguageExtension_RemoveViaIdentityExpanded.cs new file mode 100644 index 000000000000..da46e68eb35f --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterLanguageExtension_RemoveViaIdentityExpanded.cs @@ -0,0 +1,471 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Remove a list of language extensions that can run within KQL queries. + /// + /// [OpenAPI] RemoveLanguageExtensions=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/removeLanguageExtensions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoClusterLanguageExtension_RemoveViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Remove a list of language extensions that can run within KQL queries.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoClusterLanguageExtension_RemoveViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList _languageExtensionsToRemoveBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.LanguageExtensionsList(); + + /// The list of language extension objects. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtensionsList LanguageExtensionsToRemoveBody { get => this._languageExtensionsToRemoveBody; set => this._languageExtensionsToRemoveBody = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// The list of language extensions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of language extensions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of language extensions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ILanguageExtension[] Value { get => LanguageExtensionsToRemoveBody.Value ?? null /* arrayOf */; set => LanguageExtensionsToRemoveBody.Value = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzKustoClusterLanguageExtension_RemoveViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoClusterLanguageExtension_RemoveViaIdentityExpanded Clone() + { + var clone = new RemoveAzKustoClusterLanguageExtension_RemoveViaIdentityExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.LanguageExtensionsToRemoveBody = this.LanguageExtensionsToRemoveBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersRemoveLanguageExtensions' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClustersRemoveLanguageExtensionsViaIdentity(InputObject.Id, LanguageExtensionsToRemoveBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClustersRemoveLanguageExtensions(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, LanguageExtensionsToRemoveBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=LanguageExtensionsToRemoveBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public RemoveAzKustoClusterLanguageExtension_RemoveViaIdentityExpanded() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=LanguageExtensionsToRemoveBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=LanguageExtensionsToRemoveBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterPrincipalAssignment_Delete.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterPrincipalAssignment_Delete.cs new file mode 100644 index 000000000000..7f54dae71d9d --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterPrincipalAssignment_Delete.cs @@ -0,0 +1,522 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes a Kusto cluster principalAssignment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/principalAssignments/{principalAssignmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoClusterPrincipalAssignment_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes a Kusto cluster principalAssignment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoClusterPrincipalAssignment_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private string _principalAssignmentName; + + /// The name of the Kusto principalAssignment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto principalAssignment.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto principalAssignment.", + SerializedName = @"principalAssignmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string PrincipalAssignmentName { get => this._principalAssignmentName; set => this._principalAssignmentName = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzKustoClusterPrincipalAssignment_Delete + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoClusterPrincipalAssignment_Delete Clone() + { + var clone = new RemoveAzKustoClusterPrincipalAssignment_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.PrincipalAssignmentName = this.PrincipalAssignmentName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClusterPrincipalAssignmentsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClusterPrincipalAssignmentsDelete(SubscriptionId, ResourceGroupName, ClusterName, PrincipalAssignmentName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,PrincipalAssignmentName=PrincipalAssignmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoClusterPrincipalAssignment_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, PrincipalAssignmentName=PrincipalAssignmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, PrincipalAssignmentName=PrincipalAssignmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterPrincipalAssignment_DeleteViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterPrincipalAssignment_DeleteViaIdentity.cs new file mode 100644 index 000000000000..1cf41e51adb6 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoClusterPrincipalAssignment_DeleteViaIdentity.cs @@ -0,0 +1,489 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes a Kusto cluster principalAssignment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/principalAssignments/{principalAssignmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoClusterPrincipalAssignment_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes a Kusto cluster principalAssignment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoClusterPrincipalAssignment_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzKustoClusterPrincipalAssignment_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoClusterPrincipalAssignment_DeleteViaIdentity Clone() + { + var clone = new RemoveAzKustoClusterPrincipalAssignment_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClusterPrincipalAssignmentsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClusterPrincipalAssignmentsDeleteViaIdentity(InputObject.Id, onOk, onNoContent, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.PrincipalAssignmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PrincipalAssignmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClusterPrincipalAssignmentsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.PrincipalAssignmentName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoClusterPrincipalAssignment_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoCluster_Delete.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoCluster_Delete.cs new file mode 100644 index 000000000000..d8dd3b78ba99 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoCluster_Delete.cs @@ -0,0 +1,508 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes a Kusto cluster. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoCluster_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes a Kusto cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoCluster_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ClusterName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzKustoCluster_Delete + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoCluster_Delete Clone() + { + var clone = new RemoveAzKustoCluster_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + clone.SubscriptionId = this.SubscriptionId; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersDelete(ResourceGroupName, Name, SubscriptionId, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,Name=Name,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoCluster_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoCluster_DeleteViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoCluster_DeleteViaIdentity.cs new file mode 100644 index 000000000000..ddfd541dd205 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoCluster_DeleteViaIdentity.cs @@ -0,0 +1,483 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes a Kusto cluster. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoCluster_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes a Kusto cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoCluster_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzKustoCluster_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoCluster_DeleteViaIdentity Clone() + { + var clone = new RemoveAzKustoCluster_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClustersDeleteViaIdentity(InputObject.Id, onOk, onNoContent, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClustersDelete(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.SubscriptionId ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoCluster_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDataConnection_Delete.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDataConnection_Delete.cs new file mode 100644 index 000000000000..e9f02acaf74f --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDataConnection_Delete.cs @@ -0,0 +1,538 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes the data connection with the given name. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnections/{dataConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoDataConnection_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes the data connection with the given name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoDataConnection_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the data connection. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the data connection.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the data connection.", + SerializedName = @"dataConnectionName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DataConnectionName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzKustoDataConnection_Delete + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoDataConnection_Delete Clone() + { + var clone = new RemoveAzKustoDataConnection_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.DatabaseName = this.DatabaseName; + clone.Name = this.Name; + clone.SubscriptionId = this.SubscriptionId; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DataConnectionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DataConnectionsDelete(ResourceGroupName, ClusterName, DatabaseName, Name, SubscriptionId, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,Name=Name,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoDataConnection_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDataConnection_DeleteViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDataConnection_DeleteViaIdentity.cs new file mode 100644 index 000000000000..bb2e2d3df337 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDataConnection_DeleteViaIdentity.cs @@ -0,0 +1,491 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes the data connection with the given name. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnections/{dataConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoDataConnection_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes the data connection with the given name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoDataConnection_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzKustoDataConnection_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoDataConnection_DeleteViaIdentity Clone() + { + var clone = new RemoveAzKustoDataConnection_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DataConnectionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DataConnectionsDeleteViaIdentity(InputObject.Id, onOk, onNoContent, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DataConnectionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DataConnectionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DataConnectionsDelete(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.DataConnectionName ?? null, InputObject.SubscriptionId ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoDataConnection_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipalAssignment_Delete.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipalAssignment_Delete.cs new file mode 100644 index 000000000000..220a767b07ad --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipalAssignment_Delete.cs @@ -0,0 +1,537 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes a Kusto principalAssignment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/principalAssignments/{principalAssignmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoDatabasePrincipalAssignment_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes a Kusto principalAssignment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoDatabasePrincipalAssignment_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private string _principalAssignmentName; + + /// The name of the Kusto principalAssignment. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto principalAssignment.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto principalAssignment.", + SerializedName = @"principalAssignmentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string PrincipalAssignmentName { get => this._principalAssignmentName; set => this._principalAssignmentName = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzKustoDatabasePrincipalAssignment_Delete + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoDatabasePrincipalAssignment_Delete Clone() + { + var clone = new RemoveAzKustoDatabasePrincipalAssignment_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.DatabaseName = this.DatabaseName; + clone.PrincipalAssignmentName = this.PrincipalAssignmentName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasePrincipalAssignmentsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasePrincipalAssignmentsDelete(SubscriptionId, ResourceGroupName, ClusterName, DatabaseName, PrincipalAssignmentName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,PrincipalAssignmentName=PrincipalAssignmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoDatabasePrincipalAssignment_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, PrincipalAssignmentName=PrincipalAssignmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, PrincipalAssignmentName=PrincipalAssignmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipalAssignment_DeleteViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipalAssignment_DeleteViaIdentity.cs new file mode 100644 index 000000000000..12ba2a25b06e --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipalAssignment_DeleteViaIdentity.cs @@ -0,0 +1,493 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes a Kusto principalAssignment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/principalAssignments/{principalAssignmentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoDatabasePrincipalAssignment_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes a Kusto principalAssignment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoDatabasePrincipalAssignment_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzKustoDatabasePrincipalAssignment_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoDatabasePrincipalAssignment_DeleteViaIdentity Clone() + { + var clone = new RemoveAzKustoDatabasePrincipalAssignment_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasePrincipalAssignmentsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DatabasePrincipalAssignmentsDeleteViaIdentity(InputObject.Id, onOk, onNoContent, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.PrincipalAssignmentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PrincipalAssignmentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DatabasePrincipalAssignmentsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.PrincipalAssignmentName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoDatabasePrincipalAssignment_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipal_Remove.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipal_Remove.cs new file mode 100644 index 000000000000..c14a8d5f94ab --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipal_Remove.cs @@ -0,0 +1,430 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Remove Database principals permissions. + /// + /// [OpenAPI] RemovePrincipals=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/removePrincipals" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoDatabasePrincipal_Remove", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Remove Database principals permissions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoDatabasePrincipal_Remove : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest _databasePrincipalsToRemove; + + /// The list Kusto database principals operation request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The list Kusto database principals operation request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The list Kusto database principals operation request.", + SerializedName = @"databasePrincipalsToRemove", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest DatabasePrincipalsToRemove { get => this._databasePrincipalsToRemove; set => this._databasePrincipalsToRemove = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesRemovePrincipals' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasesRemovePrincipals(ResourceGroupName, ClusterName, DatabaseName, SubscriptionId, DatabasePrincipalsToRemove, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,SubscriptionId=SubscriptionId,body=DatabasePrincipalsToRemove}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoDatabasePrincipal_Remove() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=DatabasePrincipalsToRemove }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=DatabasePrincipalsToRemove }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipal_RemoveExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipal_RemoveExpanded.cs new file mode 100644 index 000000000000..e8084b9fadda --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipal_RemoveExpanded.cs @@ -0,0 +1,435 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Remove Database principals permissions. + /// + /// [OpenAPI] RemovePrincipals=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/removePrincipals" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoDatabasePrincipal_RemoveExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Remove Database principals permissions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoDatabasePrincipal_RemoveExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest _databasePrincipalsToRemoveBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalListRequest(); + + /// The list Kusto database principals operation request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest DatabasePrincipalsToRemoveBody { get => this._databasePrincipalsToRemoveBody; set => this._databasePrincipalsToRemoveBody = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// The list of Kusto database principals. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of Kusto database principals.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of Kusto database principals.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[] Value { get => DatabasePrincipalsToRemoveBody.Value ?? null /* arrayOf */; set => DatabasePrincipalsToRemoveBody.Value = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesRemovePrincipals' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasesRemovePrincipals(ResourceGroupName, ClusterName, DatabaseName, SubscriptionId, DatabasePrincipalsToRemoveBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,SubscriptionId=SubscriptionId,body=DatabasePrincipalsToRemoveBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoDatabasePrincipal_RemoveExpanded() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=DatabasePrincipalsToRemoveBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=DatabasePrincipalsToRemoveBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipal_RemoveViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipal_RemoveViaIdentity.cs new file mode 100644 index 000000000000..2e1438daf48a --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipal_RemoveViaIdentity.cs @@ -0,0 +1,399 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Remove Database principals permissions. + /// + /// [OpenAPI] RemovePrincipals=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/removePrincipals" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoDatabasePrincipal_RemoveViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Remove Database principals permissions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoDatabasePrincipal_RemoveViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest _databasePrincipalsToRemove; + + /// The list Kusto database principals operation request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The list Kusto database principals operation request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The list Kusto database principals operation request.", + SerializedName = @"databasePrincipalsToRemove", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest DatabasePrincipalsToRemove { get => this._databasePrincipalsToRemove; set => this._databasePrincipalsToRemove = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesRemovePrincipals' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DatabasesRemovePrincipalsViaIdentity(InputObject.Id, DatabasePrincipalsToRemove, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DatabasesRemovePrincipals(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.SubscriptionId ?? null, DatabasePrincipalsToRemove, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DatabasePrincipalsToRemove}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoDatabasePrincipal_RemoveViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DatabasePrincipalsToRemove }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DatabasePrincipalsToRemove }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipal_RemoveViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipal_RemoveViaIdentityExpanded.cs new file mode 100644 index 000000000000..36a001b91f7c --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabasePrincipal_RemoveViaIdentityExpanded.cs @@ -0,0 +1,404 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Remove Database principals permissions. + /// + /// [OpenAPI] RemovePrincipals=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/removePrincipals" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoDatabasePrincipal_RemoveViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Remove Database principals permissions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoDatabasePrincipal_RemoveViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest _databasePrincipalsToRemoveBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalListRequest(); + + /// The list Kusto database principals operation request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalListRequest DatabasePrincipalsToRemoveBody { get => this._databasePrincipalsToRemoveBody; set => this._databasePrincipalsToRemoveBody = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// The list of Kusto database principals. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of Kusto database principals.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of Kusto database principals.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipal[] Value { get => DatabasePrincipalsToRemoveBody.Value ?? null /* arrayOf */; set => DatabasePrincipalsToRemoveBody.Value = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesRemovePrincipals' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DatabasesRemovePrincipalsViaIdentity(InputObject.Id, DatabasePrincipalsToRemoveBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DatabasesRemovePrincipals(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.SubscriptionId ?? null, DatabasePrincipalsToRemoveBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DatabasePrincipalsToRemoveBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoDatabasePrincipal_RemoveViaIdentityExpanded() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DatabasePrincipalsToRemoveBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DatabasePrincipalsToRemoveBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabase_Delete.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabase_Delete.cs new file mode 100644 index 000000000000..028195eed1d2 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabase_Delete.cs @@ -0,0 +1,523 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes the database with the given name. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoDatabase_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes the database with the given name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoDatabase_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DatabaseName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzKustoDatabase_Delete + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoDatabase_Delete Clone() + { + var clone = new RemoveAzKustoDatabase_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.Name = this.Name; + clone.SubscriptionId = this.SubscriptionId; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasesDelete(ResourceGroupName, ClusterName, Name, SubscriptionId, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,Name=Name,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoDatabase_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabase_DeleteViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabase_DeleteViaIdentity.cs new file mode 100644 index 000000000000..f0765cba9d09 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoDatabase_DeleteViaIdentity.cs @@ -0,0 +1,487 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes the database with the given name. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoDatabase_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes the database with the given name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoDatabase_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzKustoDatabase_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoDatabase_DeleteViaIdentity Clone() + { + var clone = new RemoveAzKustoDatabase_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DatabasesDeleteViaIdentity(InputObject.Id, onOk, onNoContent, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DatabasesDelete(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.SubscriptionId ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoDatabase_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoManagedPrivateEndpoint_Delete.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoManagedPrivateEndpoint_Delete.cs new file mode 100644 index 000000000000..3a5e00173b92 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoManagedPrivateEndpoint_Delete.cs @@ -0,0 +1,523 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes a managed private endpoint. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpoints/{managedPrivateEndpointName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoManagedPrivateEndpoint_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes a managed private endpoint.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoManagedPrivateEndpoint_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the managed private endpoint. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the managed private endpoint.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the managed private endpoint.", + SerializedName = @"managedPrivateEndpointName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ManagedPrivateEndpointName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzKustoManagedPrivateEndpoint_Delete + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoManagedPrivateEndpoint_Delete Clone() + { + var clone = new RemoveAzKustoManagedPrivateEndpoint_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedPrivateEndpointsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedPrivateEndpointsDelete(SubscriptionId, ResourceGroupName, ClusterName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoManagedPrivateEndpoint_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoManagedPrivateEndpoint_DeleteViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoManagedPrivateEndpoint_DeleteViaIdentity.cs new file mode 100644 index 000000000000..a7f7eb7e1e97 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoManagedPrivateEndpoint_DeleteViaIdentity.cs @@ -0,0 +1,487 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes a managed private endpoint. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpoints/{managedPrivateEndpointName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoManagedPrivateEndpoint_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes a managed private endpoint.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoManagedPrivateEndpoint_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzKustoManagedPrivateEndpoint_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoManagedPrivateEndpoint_DeleteViaIdentity Clone() + { + var clone = new RemoveAzKustoManagedPrivateEndpoint_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedPrivateEndpointsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ManagedPrivateEndpointsDeleteViaIdentity(InputObject.Id, onOk, onNoContent, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ManagedPrivateEndpointName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ManagedPrivateEndpointName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ManagedPrivateEndpointsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.ManagedPrivateEndpointName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoManagedPrivateEndpoint_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoPrivateEndpointConnection_Delete.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoPrivateEndpointConnection_Delete.cs new file mode 100644 index 000000000000..26c78e3a9242 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoPrivateEndpointConnection_Delete.cs @@ -0,0 +1,523 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes a private endpoint connection with a given name. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/privateEndpointConnections/{privateEndpointConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoPrivateEndpointConnection_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes a private endpoint connection with a given name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoPrivateEndpointConnection_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the private endpoint connection. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the private endpoint connection.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the private endpoint connection.", + SerializedName = @"privateEndpointConnectionName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PrivateEndpointConnectionName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzKustoPrivateEndpointConnection_Delete + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoPrivateEndpointConnection_Delete Clone() + { + var clone = new RemoveAzKustoPrivateEndpointConnection_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PrivateEndpointConnectionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateEndpointConnectionsDelete(SubscriptionId, ResourceGroupName, ClusterName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoPrivateEndpointConnection_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoPrivateEndpointConnection_DeleteViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoPrivateEndpointConnection_DeleteViaIdentity.cs new file mode 100644 index 000000000000..df3b2a35c09e --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoPrivateEndpointConnection_DeleteViaIdentity.cs @@ -0,0 +1,489 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes a private endpoint connection with a given name. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/privateEndpointConnections/{privateEndpointConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoPrivateEndpointConnection_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes a private endpoint connection with a given name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoPrivateEndpointConnection_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzKustoPrivateEndpointConnection_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoPrivateEndpointConnection_DeleteViaIdentity Clone() + { + var clone = new RemoveAzKustoPrivateEndpointConnection_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PrivateEndpointConnectionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PrivateEndpointConnectionsDeleteViaIdentity(InputObject.Id, onOk, onNoContent, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.PrivateEndpointConnectionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PrivateEndpointConnectionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PrivateEndpointConnectionsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.PrivateEndpointConnectionName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoPrivateEndpointConnection_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoScript_Delete.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoScript_Delete.cs new file mode 100644 index 000000000000..4d659da06955 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoScript_Delete.cs @@ -0,0 +1,538 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes a Kusto principalAssignment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scripts/{scriptName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoScript_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes a Kusto principalAssignment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoScript_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Kusto database script. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto database script.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto database script.", + SerializedName = @"scriptName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ScriptName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzKustoScript_Delete + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoScript_Delete Clone() + { + var clone = new RemoveAzKustoScript_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.DatabaseName = this.DatabaseName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ScriptsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ScriptsDelete(SubscriptionId, ResourceGroupName, ClusterName, DatabaseName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoScript_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoScript_DeleteViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoScript_DeleteViaIdentity.cs new file mode 100644 index 000000000000..f58ec5f7a80d --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/RemoveAzKustoScript_DeleteViaIdentity.cs @@ -0,0 +1,491 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Deletes a Kusto principalAssignment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scripts/{scriptName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzKustoScript_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Deletes a Kusto principalAssignment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class RemoveAzKustoScript_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzKustoScript_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.RemoveAzKustoScript_DeleteViaIdentity Clone() + { + var clone = new RemoveAzKustoScript_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ScriptsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ScriptsDeleteViaIdentity(InputObject.Id, onOk, onNoContent, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ScriptName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ScriptName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ScriptsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.ScriptName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzKustoScript_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 204 (NoContent). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onNoContent(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNoContent(responseMessage, ref _returnNow); + // if overrideOnNoContent has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNoContent - response for 204 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/StartAzKustoCluster_Start.cs b/swaggerci/azure-kusto/generated/cmdlets/StartAzKustoCluster_Start.cs new file mode 100644 index 000000000000..9d0e6663d2a9 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/StartAzKustoCluster_Start.cs @@ -0,0 +1,474 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Starts a Kusto cluster. + /// + /// [OpenAPI] Start=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/start" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Start, @"AzKustoCluster_Start", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Starts a Kusto cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class StartAzKustoCluster_Start : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ClusterName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of StartAzKustoCluster_Start + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.StartAzKustoCluster_Start Clone() + { + var clone = new StartAzKustoCluster_Start(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + clone.SubscriptionId = this.SubscriptionId; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersStart' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersStart(ResourceGroupName, Name, SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,Name=Name,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public StartAzKustoCluster_Start() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/StartAzKustoCluster_StartViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/StartAzKustoCluster_StartViaIdentity.cs new file mode 100644 index 000000000000..1ac3e50be175 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/StartAzKustoCluster_StartViaIdentity.cs @@ -0,0 +1,449 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Starts a Kusto cluster. + /// + /// [OpenAPI] Start=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/start" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Start, @"AzKustoCluster_StartViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Starts a Kusto cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class StartAzKustoCluster_StartViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of StartAzKustoCluster_StartViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.StartAzKustoCluster_StartViaIdentity Clone() + { + var clone = new StartAzKustoCluster_StartViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersStart' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClustersStartViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClustersStart(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.SubscriptionId ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public StartAzKustoCluster_StartViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/StopAzKustoCluster_Stop.cs b/swaggerci/azure-kusto/generated/cmdlets/StopAzKustoCluster_Stop.cs new file mode 100644 index 000000000000..c0496b92fdb1 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/StopAzKustoCluster_Stop.cs @@ -0,0 +1,474 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Stops a Kusto cluster. + /// + /// [OpenAPI] Stop=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/stop" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Stop, @"AzKustoCluster_Stop", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Stops a Kusto cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class StopAzKustoCluster_Stop : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ClusterName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of StopAzKustoCluster_Stop + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.StopAzKustoCluster_Stop Clone() + { + var clone = new StopAzKustoCluster_Stop(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + clone.SubscriptionId = this.SubscriptionId; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersStop' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersStop(ResourceGroupName, Name, SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,Name=Name,SubscriptionId=SubscriptionId}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public StopAzKustoCluster_Stop() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, Name=Name, SubscriptionId=SubscriptionId }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/StopAzKustoCluster_StopViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/StopAzKustoCluster_StopViaIdentity.cs new file mode 100644 index 000000000000..764dfe02d099 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/StopAzKustoCluster_StopViaIdentity.cs @@ -0,0 +1,449 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Stops a Kusto cluster. + /// + /// [OpenAPI] Stop=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/stop" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Stop, @"AzKustoCluster_StopViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Stops a Kusto cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class StopAzKustoCluster_StopViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter PassThru { get; set; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of StopAzKustoCluster_StopViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.StopAzKustoCluster_StopViaIdentity Clone() + { + var clone = new StopAzKustoCluster_StopViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersStop' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClustersStopViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClustersStop(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.SubscriptionId ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public StopAzKustoCluster_StopViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoAttachedDatabaseConfigurationNameAvailability_Check.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoAttachedDatabaseConfigurationNameAvailability_Check.cs new file mode 100644 index 000000000000..eef1627f88f2 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoAttachedDatabaseConfigurationNameAvailability_Check.cs @@ -0,0 +1,420 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// + /// Checks that the attached database configuration resource name is valid and is not already in use. + /// + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/attachedDatabaseConfigurationCheckNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoAttachedDatabaseConfigurationNameAvailability_Check", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the attached database configuration resource name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoAttachedDatabaseConfigurationNameAvailability_Check : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest _resourceName; + + /// + /// The result returned from a AttachedDatabaseConfigurations check name availability request. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The result returned from a AttachedDatabaseConfigurations check name availability request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The result returned from a AttachedDatabaseConfigurations check name availability request.", + SerializedName = @"resourceName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest ResourceName { get => this._resourceName; set => this._resourceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AttachedDatabaseConfigurationsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AttachedDatabaseConfigurationsCheckNameAvailability(ResourceGroupName, ClusterName, SubscriptionId, ResourceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,SubscriptionId=SubscriptionId,body=ResourceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public TestAzKustoAttachedDatabaseConfigurationNameAvailability_Check() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=ResourceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=ResourceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckExpanded.cs new file mode 100644 index 000000000000..b8f61af08159 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckExpanded.cs @@ -0,0 +1,424 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// + /// Checks that the attached database configuration resource name is valid and is not already in use. + /// + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/attachedDatabaseConfigurationCheckNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoAttachedDatabaseConfigurationNameAvailability_CheckExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the attached database configuration resource name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Attached database resource name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Attached database resource name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Attached database resource name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => ResourceNameBody.Name ?? null; set => ResourceNameBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest _resourceNameBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfigurationsCheckNameRequest(); + + /// + /// The result returned from a AttachedDatabaseConfigurations check name availability request. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest ResourceNameBody { get => this._resourceNameBody; set => this._resourceNameBody = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AttachedDatabaseConfigurationsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AttachedDatabaseConfigurationsCheckNameAvailability(ResourceGroupName, ClusterName, SubscriptionId, ResourceNameBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,SubscriptionId=SubscriptionId,body=ResourceNameBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=ResourceNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=ResourceNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentity.cs new file mode 100644 index 000000000000..46723b6814c2 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentity.cs @@ -0,0 +1,399 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// + /// Checks that the attached database configuration resource name is valid and is not already in use. + /// + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/attachedDatabaseConfigurationCheckNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the attached database configuration resource name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest _resourceName; + + /// + /// The result returned from a AttachedDatabaseConfigurations check name availability request. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The result returned from a AttachedDatabaseConfigurations check name availability request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The result returned from a AttachedDatabaseConfigurations check name availability request.", + SerializedName = @"resourceName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest ResourceName { get => this._resourceName; set => this._resourceName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AttachedDatabaseConfigurationsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.AttachedDatabaseConfigurationsCheckNameAvailabilityViaIdentity(InputObject.Id, ResourceName, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.AttachedDatabaseConfigurationsCheckNameAvailability(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.SubscriptionId ?? null, ResourceName, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentity() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentityExpanded.cs new file mode 100644 index 000000000000..c8bd4ca39b7a --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentityExpanded.cs @@ -0,0 +1,403 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// + /// Checks that the attached database configuration resource name is valid and is not already in use. + /// + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/attachedDatabaseConfigurationCheckNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the attached database configuration resource name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Attached database resource name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Attached database resource name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Attached database resource name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => ResourceNameBody.Name ?? null; set => ResourceNameBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest _resourceNameBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.AttachedDatabaseConfigurationsCheckNameRequest(); + + /// + /// The result returned from a AttachedDatabaseConfigurations check name availability request. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAttachedDatabaseConfigurationsCheckNameRequest ResourceNameBody { get => this._resourceNameBody; set => this._resourceNameBody = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AttachedDatabaseConfigurationsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.AttachedDatabaseConfigurationsCheckNameAvailabilityViaIdentity(InputObject.Id, ResourceNameBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.AttachedDatabaseConfigurationsCheckNameAvailability(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.SubscriptionId ?? null, ResourceNameBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceNameBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoAttachedDatabaseConfigurationNameAvailability_CheckViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterNameAvailability_Check.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterNameAvailability_Check.cs new file mode 100644 index 000000000000..12a8c986379a --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterNameAvailability_Check.cs @@ -0,0 +1,401 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the cluster name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/locations/{location}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoClusterNameAvailability_Check", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the cluster name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoClusterNameAvailability_Check : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest _clusterName; + + /// The result returned from a cluster check name availability request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The result returned from a cluster check name availability request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The result returned from a cluster check name availability request.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Backing field for property. + private string _location; + + /// Azure location (region) name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Azure location (region) name.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Azure location (region) name.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Location { get => this._location; set => this._location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersCheckNameAvailability(SubscriptionId, Location, ClusterName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,Location=Location,body=ClusterName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoClusterNameAvailability_Check() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, Location=Location, body=ClusterName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, Location=Location, body=ClusterName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterNameAvailability_CheckExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterNameAvailability_CheckExpanded.cs new file mode 100644 index 000000000000..2e368ba78603 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterNameAvailability_CheckExpanded.cs @@ -0,0 +1,405 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the cluster name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/locations/{location}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoClusterNameAvailability_CheckExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the cluster name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoClusterNameAvailability_CheckExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest _clusterNameBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterCheckNameRequest(); + + /// The result returned from a cluster check name availability request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest ClusterNameBody { get => this._clusterNameBody; set => this._clusterNameBody = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Backing field for property. + private string _location; + + /// Azure location (region) name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Azure location (region) name.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Azure location (region) name.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Location { get => this._location; set => this._location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Cluster name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Cluster name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Cluster name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => ClusterNameBody.Name ?? null; set => ClusterNameBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersCheckNameAvailability(SubscriptionId, Location, ClusterNameBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,Location=Location,body=ClusterNameBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoClusterNameAvailability_CheckExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, Location=Location, body=ClusterNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, Location=Location, body=ClusterNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterNameAvailability_CheckViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterNameAvailability_CheckViaIdentity.cs new file mode 100644 index 000000000000..e6c3c7357f52 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterNameAvailability_CheckViaIdentity.cs @@ -0,0 +1,390 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the cluster name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/locations/{location}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoClusterNameAvailability_CheckViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the cluster name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoClusterNameAvailability_CheckViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest _clusterName; + + /// The result returned from a cluster check name availability request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The result returned from a cluster check name availability request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The result returned from a cluster check name availability request.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClustersCheckNameAvailabilityViaIdentity(InputObject.Id, ClusterName, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.Location) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.Location"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClustersCheckNameAvailability(InputObject.SubscriptionId ?? null, InputObject.Location ?? null, ClusterName, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ClusterName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoClusterNameAvailability_CheckViaIdentity() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ClusterName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ClusterName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterNameAvailability_CheckViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterNameAvailability_CheckViaIdentityExpanded.cs new file mode 100644 index 000000000000..e9e4dc9c577a --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterNameAvailability_CheckViaIdentityExpanded.cs @@ -0,0 +1,394 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the cluster name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/providers/Microsoft.Kusto/locations/{location}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoClusterNameAvailability_CheckViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the cluster name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoClusterNameAvailability_CheckViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest _clusterNameBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterCheckNameRequest(); + + /// The result returned from a cluster check name availability request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterCheckNameRequest ClusterNameBody { get => this._clusterNameBody; set => this._clusterNameBody = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Cluster name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Cluster name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Cluster name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => ClusterNameBody.Name ?? null; set => ClusterNameBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClustersCheckNameAvailabilityViaIdentity(InputObject.Id, ClusterNameBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.Location) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.Location"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClustersCheckNameAvailability(InputObject.SubscriptionId ?? null, InputObject.Location ?? null, ClusterNameBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ClusterNameBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoClusterNameAvailability_CheckViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ClusterNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ClusterNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterPrincipalAssignmentNameAvailability_Check.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterPrincipalAssignmentNameAvailability_Check.cs new file mode 100644 index 000000000000..9508ad8d3cd2 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterPrincipalAssignmentNameAvailability_Check.cs @@ -0,0 +1,415 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the principal assignment name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/checkPrincipalAssignmentNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoClusterPrincipalAssignmentNameAvailability_Check", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the principal assignment name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoClusterPrincipalAssignmentNameAvailability_Check : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest _principalAssignmentName; + + /// A principal assignment check name availability request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "A principal assignment check name availability request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"A principal assignment check name availability request.", + SerializedName = @"principalAssignmentName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest PrincipalAssignmentName { get => this._principalAssignmentName; set => this._principalAssignmentName = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClusterPrincipalAssignmentsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClusterPrincipalAssignmentsCheckNameAvailability(ResourceGroupName, ClusterName, SubscriptionId, PrincipalAssignmentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,SubscriptionId=SubscriptionId,body=PrincipalAssignmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoClusterPrincipalAssignmentNameAvailability_Check() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=PrincipalAssignmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=PrincipalAssignmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckExpanded.cs new file mode 100644 index 000000000000..f2414f1aa95d --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckExpanded.cs @@ -0,0 +1,420 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the principal assignment name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/checkPrincipalAssignmentNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoClusterPrincipalAssignmentNameAvailability_CheckExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the principal assignment name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Principal Assignment resource name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Principal Assignment resource name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Principal Assignment resource name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => PrincipalAssignmentNameBody.Name ?? null; set => PrincipalAssignmentNameBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest _principalAssignmentNameBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalAssignmentCheckNameRequest(); + + /// A principal assignment check name availability request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest PrincipalAssignmentNameBody { get => this._principalAssignmentNameBody; set => this._principalAssignmentNameBody = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClusterPrincipalAssignmentsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClusterPrincipalAssignmentsCheckNameAvailability(ResourceGroupName, ClusterName, SubscriptionId, PrincipalAssignmentNameBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,SubscriptionId=SubscriptionId,body=PrincipalAssignmentNameBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=PrincipalAssignmentNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=PrincipalAssignmentNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentity.cs new file mode 100644 index 000000000000..6c7c11484a4f --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentity.cs @@ -0,0 +1,395 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the principal assignment name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/checkPrincipalAssignmentNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the principal assignment name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest _principalAssignmentName; + + /// A principal assignment check name availability request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "A principal assignment check name availability request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"A principal assignment check name availability request.", + SerializedName = @"principalAssignmentName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest PrincipalAssignmentName { get => this._principalAssignmentName; set => this._principalAssignmentName = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClusterPrincipalAssignmentsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClusterPrincipalAssignmentsCheckNameAvailabilityViaIdentity(InputObject.Id, PrincipalAssignmentName, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClusterPrincipalAssignmentsCheckNameAvailability(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.SubscriptionId ?? null, PrincipalAssignmentName, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=PrincipalAssignmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentity() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=PrincipalAssignmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=PrincipalAssignmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentityExpanded.cs new file mode 100644 index 000000000000..9c293b066699 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentityExpanded.cs @@ -0,0 +1,399 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the principal assignment name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/checkPrincipalAssignmentNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the principal assignment name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Principal Assignment resource name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Principal Assignment resource name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Principal Assignment resource name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => PrincipalAssignmentNameBody.Name ?? null; set => PrincipalAssignmentNameBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest _principalAssignmentNameBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterPrincipalAssignmentCheckNameRequest(); + + /// A principal assignment check name availability request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterPrincipalAssignmentCheckNameRequest PrincipalAssignmentNameBody { get => this._principalAssignmentNameBody; set => this._principalAssignmentNameBody = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClusterPrincipalAssignmentsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClusterPrincipalAssignmentsCheckNameAvailabilityViaIdentity(InputObject.Id, PrincipalAssignmentNameBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClusterPrincipalAssignmentsCheckNameAvailability(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.SubscriptionId ?? null, PrincipalAssignmentNameBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=PrincipalAssignmentNameBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoClusterPrincipalAssignmentNameAvailability_CheckViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=PrincipalAssignmentNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=PrincipalAssignmentNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDataConnectionNameAvailability_Check.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDataConnectionNameAvailability_Check.cs new file mode 100644 index 000000000000..f9d383ccbdcb --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDataConnectionNameAvailability_Check.cs @@ -0,0 +1,429 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the data connection name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoDataConnectionNameAvailability_Check", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the data connection name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoDataConnectionNameAvailability_Check : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest _dataConnectionName; + + /// A data connection check name availability request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "A data connection check name availability request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"A data connection check name availability request.", + SerializedName = @"dataConnectionName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest DataConnectionName { get => this._dataConnectionName; set => this._dataConnectionName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DataConnectionsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DataConnectionsCheckNameAvailability(ResourceGroupName, ClusterName, DatabaseName, SubscriptionId, DataConnectionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,SubscriptionId=SubscriptionId,body=DataConnectionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoDataConnectionNameAvailability_Check() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=DataConnectionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=DataConnectionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDataConnectionNameAvailability_CheckExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDataConnectionNameAvailability_CheckExpanded.cs new file mode 100644 index 000000000000..ed2e6edb5ff1 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDataConnectionNameAvailability_CheckExpanded.cs @@ -0,0 +1,433 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the data connection name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoDataConnectionNameAvailability_CheckExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the data connection name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoDataConnectionNameAvailability_CheckExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest _dataConnectionNameBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionCheckNameRequest(); + + /// A data connection check name availability request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest DataConnectionNameBody { get => this._dataConnectionNameBody; set => this._dataConnectionNameBody = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Data Connection name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Data Connection name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Data Connection name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => DataConnectionNameBody.Name ?? null; set => DataConnectionNameBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DataConnectionsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DataConnectionsCheckNameAvailability(ResourceGroupName, ClusterName, DatabaseName, SubscriptionId, DataConnectionNameBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,SubscriptionId=SubscriptionId,body=DataConnectionNameBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoDataConnectionNameAvailability_CheckExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=DataConnectionNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=DataConnectionNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDataConnectionNameAvailability_CheckViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDataConnectionNameAvailability_CheckViaIdentity.cs new file mode 100644 index 000000000000..34955e051e16 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDataConnectionNameAvailability_CheckViaIdentity.cs @@ -0,0 +1,398 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the data connection name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoDataConnectionNameAvailability_CheckViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the data connection name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoDataConnectionNameAvailability_CheckViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest _dataConnectionName; + + /// A data connection check name availability request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "A data connection check name availability request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"A data connection check name availability request.", + SerializedName = @"dataConnectionName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest DataConnectionName { get => this._dataConnectionName; set => this._dataConnectionName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DataConnectionsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DataConnectionsCheckNameAvailabilityViaIdentity(InputObject.Id, DataConnectionName, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DataConnectionsCheckNameAvailability(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.SubscriptionId ?? null, DataConnectionName, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DataConnectionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoDataConnectionNameAvailability_CheckViaIdentity() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DataConnectionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DataConnectionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDataConnectionNameAvailability_CheckViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDataConnectionNameAvailability_CheckViaIdentityExpanded.cs new file mode 100644 index 000000000000..d710ead335b9 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDataConnectionNameAvailability_CheckViaIdentityExpanded.cs @@ -0,0 +1,403 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the data connection name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoDataConnectionNameAvailability_CheckViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the data connection name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoDataConnectionNameAvailability_CheckViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest _dataConnectionNameBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnectionCheckNameRequest(); + + /// A data connection check name availability request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnectionCheckNameRequest DataConnectionNameBody { get => this._dataConnectionNameBody; set => this._dataConnectionNameBody = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Data Connection name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Data Connection name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Data Connection name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => DataConnectionNameBody.Name ?? null; set => DataConnectionNameBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DataConnectionsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DataConnectionsCheckNameAvailabilityViaIdentity(InputObject.Id, DataConnectionNameBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DataConnectionsCheckNameAvailability(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.SubscriptionId ?? null, DataConnectionNameBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DataConnectionNameBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public TestAzKustoDataConnectionNameAvailability_CheckViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DataConnectionNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DataConnectionNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabaseNameAvailability_Check.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabaseNameAvailability_Check.cs new file mode 100644 index 000000000000..750428d19737 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabaseNameAvailability_Check.cs @@ -0,0 +1,415 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the databases resource name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoDatabaseNameAvailability_Check", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the databases resource name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoDatabaseNameAvailability_Check : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest _resourceName; + + /// The result returned from a database check name availability request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The result returned from a database check name availability request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The result returned from a database check name availability request.", + SerializedName = @"resourceName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest ResourceName { get => this._resourceName; set => this._resourceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasesCheckNameAvailability(ResourceGroupName, ClusterName, SubscriptionId, ResourceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,SubscriptionId=SubscriptionId,body=ResourceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoDatabaseNameAvailability_Check() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=ResourceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=ResourceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabaseNameAvailability_CheckExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabaseNameAvailability_CheckExpanded.cs new file mode 100644 index 000000000000..7b3a65045a01 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabaseNameAvailability_CheckExpanded.cs @@ -0,0 +1,431 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the databases resource name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoDatabaseNameAvailability_CheckExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the databases resource name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoDatabaseNameAvailability_CheckExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Resource name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Resource name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Resource name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => ResourceNameBody.Name ?? null; set => ResourceNameBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest _resourceNameBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CheckNameRequest(); + + /// The result returned from a database check name availability request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest ResourceNameBody { get => this._resourceNameBody; set => this._resourceNameBody = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// The type of resource, for instance Microsoft.Kusto/clusters/databases. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The type of resource, for instance Microsoft.Kusto/clusters/databases.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of resource, for instance Microsoft.Kusto/clusters/databases.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type Type { get => ResourceNameBody.Type; set => ResourceNameBody.Type = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasesCheckNameAvailability(ResourceGroupName, ClusterName, SubscriptionId, ResourceNameBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,SubscriptionId=SubscriptionId,body=ResourceNameBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoDatabaseNameAvailability_CheckExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=ResourceNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=ResourceNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabaseNameAvailability_CheckViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabaseNameAvailability_CheckViaIdentity.cs new file mode 100644 index 000000000000..9b2ff7a7a43d --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabaseNameAvailability_CheckViaIdentity.cs @@ -0,0 +1,394 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the databases resource name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoDatabaseNameAvailability_CheckViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the databases resource name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoDatabaseNameAvailability_CheckViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest _resourceName; + + /// The result returned from a database check name availability request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The result returned from a database check name availability request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The result returned from a database check name availability request.", + SerializedName = @"resourceName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest ResourceName { get => this._resourceName; set => this._resourceName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DatabasesCheckNameAvailabilityViaIdentity(InputObject.Id, ResourceName, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DatabasesCheckNameAvailability(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.SubscriptionId ?? null, ResourceName, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoDatabaseNameAvailability_CheckViaIdentity() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabaseNameAvailability_CheckViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabaseNameAvailability_CheckViaIdentityExpanded.cs new file mode 100644 index 000000000000..1ac335e85149 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabaseNameAvailability_CheckViaIdentityExpanded.cs @@ -0,0 +1,410 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the databases resource name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoDatabaseNameAvailability_CheckViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the databases resource name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoDatabaseNameAvailability_CheckViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Resource name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Resource name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Resource name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => ResourceNameBody.Name ?? null; set => ResourceNameBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest _resourceNameBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.CheckNameRequest(); + + /// The result returned from a database check name availability request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameRequest ResourceNameBody { get => this._resourceNameBody; set => this._resourceNameBody = value; } + + /// The type of resource, for instance Microsoft.Kusto/clusters/databases. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The type of resource, for instance Microsoft.Kusto/clusters/databases.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of resource, for instance Microsoft.Kusto/clusters/databases.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Type Type { get => ResourceNameBody.Type; set => ResourceNameBody.Type = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DatabasesCheckNameAvailabilityViaIdentity(InputObject.Id, ResourceNameBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DatabasesCheckNameAvailability(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.SubscriptionId ?? null, ResourceNameBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceNameBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoDatabaseNameAvailability_CheckViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabasePrincipalAssignmentNameAvailability_Check.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabasePrincipalAssignmentNameAvailability_Check.cs new file mode 100644 index 000000000000..006f556da4bf --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabasePrincipalAssignmentNameAvailability_Check.cs @@ -0,0 +1,431 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// + /// Checks that the database principal assignment is valid and is not already in use. + /// + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/checkPrincipalAssignmentNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoDatabasePrincipalAssignmentNameAvailability_Check", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the database principal assignment is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoDatabasePrincipalAssignmentNameAvailability_Check : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest _principalAssignmentName; + + /// A principal assignment check name availability request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "A principal assignment check name availability request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"A principal assignment check name availability request.", + SerializedName = @"principalAssignmentName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest PrincipalAssignmentName { get => this._principalAssignmentName; set => this._principalAssignmentName = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasePrincipalAssignmentsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasePrincipalAssignmentsCheckNameAvailability(ResourceGroupName, ClusterName, DatabaseName, SubscriptionId, PrincipalAssignmentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,SubscriptionId=SubscriptionId,body=PrincipalAssignmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoDatabasePrincipalAssignmentNameAvailability_Check() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=PrincipalAssignmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=PrincipalAssignmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckExpanded.cs new file mode 100644 index 000000000000..d1bcaaf429e2 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckExpanded.cs @@ -0,0 +1,436 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// + /// Checks that the database principal assignment is valid and is not already in use. + /// + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/checkPrincipalAssignmentNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoDatabasePrincipalAssignmentNameAvailability_CheckExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the database principal assignment is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Principal Assignment resource name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Principal Assignment resource name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Principal Assignment resource name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => PrincipalAssignmentNameBody.Name ?? null; set => PrincipalAssignmentNameBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest _principalAssignmentNameBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalAssignmentCheckNameRequest(); + + /// A principal assignment check name availability request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest PrincipalAssignmentNameBody { get => this._principalAssignmentNameBody; set => this._principalAssignmentNameBody = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasePrincipalAssignmentsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasePrincipalAssignmentsCheckNameAvailability(ResourceGroupName, ClusterName, DatabaseName, SubscriptionId, PrincipalAssignmentNameBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,SubscriptionId=SubscriptionId,body=PrincipalAssignmentNameBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=PrincipalAssignmentNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=PrincipalAssignmentNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentity.cs new file mode 100644 index 000000000000..9e026ea85415 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentity.cs @@ -0,0 +1,401 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// + /// Checks that the database principal assignment is valid and is not already in use. + /// + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/checkPrincipalAssignmentNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the database principal assignment is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest _principalAssignmentName; + + /// A principal assignment check name availability request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "A principal assignment check name availability request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"A principal assignment check name availability request.", + SerializedName = @"principalAssignmentName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest PrincipalAssignmentName { get => this._principalAssignmentName; set => this._principalAssignmentName = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasePrincipalAssignmentsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DatabasePrincipalAssignmentsCheckNameAvailabilityViaIdentity(InputObject.Id, PrincipalAssignmentName, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DatabasePrincipalAssignmentsCheckNameAvailability(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.SubscriptionId ?? null, PrincipalAssignmentName, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=PrincipalAssignmentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentity() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=PrincipalAssignmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=PrincipalAssignmentName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentityExpanded.cs new file mode 100644 index 000000000000..b167e52ad5cc --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentityExpanded.cs @@ -0,0 +1,405 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// + /// Checks that the database principal assignment is valid and is not already in use. + /// + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/checkPrincipalAssignmentNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the database principal assignment is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Principal Assignment resource name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Principal Assignment resource name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Principal Assignment resource name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => PrincipalAssignmentNameBody.Name ?? null; set => PrincipalAssignmentNameBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest _principalAssignmentNameBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DatabasePrincipalAssignmentCheckNameRequest(); + + /// A principal assignment check name availability request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabasePrincipalAssignmentCheckNameRequest PrincipalAssignmentNameBody { get => this._principalAssignmentNameBody; set => this._principalAssignmentNameBody = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasePrincipalAssignmentsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DatabasePrincipalAssignmentsCheckNameAvailabilityViaIdentity(InputObject.Id, PrincipalAssignmentNameBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DatabasePrincipalAssignmentsCheckNameAvailability(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.SubscriptionId ?? null, PrincipalAssignmentNameBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=PrincipalAssignmentNameBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoDatabasePrincipalAssignmentNameAvailability_CheckViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=PrincipalAssignmentNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=PrincipalAssignmentNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoManagedPrivateEndpointNameAvailability_Check.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoManagedPrivateEndpointNameAvailability_Check.cs new file mode 100644 index 000000000000..ba6eeae0659c --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoManagedPrivateEndpointNameAvailability_Check.cs @@ -0,0 +1,419 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// + /// Checks that the managed private endpoints resource name is valid and is not already in use. + /// + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpointsCheckNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoManagedPrivateEndpointNameAvailability_Check", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the managed private endpoints resource name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoManagedPrivateEndpointNameAvailability_Check : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest _resourceName; + + /// + /// The result returned from a managedPrivateEndpoints check name availability request. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The result returned from a managedPrivateEndpoints check name availability request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The result returned from a managedPrivateEndpoints check name availability request.", + SerializedName = @"resourceName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest ResourceName { get => this._resourceName; set => this._resourceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedPrivateEndpointsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedPrivateEndpointsCheckNameAvailability(ResourceGroupName, ClusterName, SubscriptionId, ResourceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,SubscriptionId=SubscriptionId,body=ResourceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoManagedPrivateEndpointNameAvailability_Check() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=ResourceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=ResourceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoManagedPrivateEndpointNameAvailability_CheckExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoManagedPrivateEndpointNameAvailability_CheckExpanded.cs new file mode 100644 index 000000000000..c3466daf08a0 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoManagedPrivateEndpointNameAvailability_CheckExpanded.cs @@ -0,0 +1,424 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// + /// Checks that the managed private endpoints resource name is valid and is not already in use. + /// + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpointsCheckNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoManagedPrivateEndpointNameAvailability_CheckExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the managed private endpoints resource name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoManagedPrivateEndpointNameAvailability_CheckExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Managed private endpoint resource name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Managed private endpoint resource name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Managed private endpoint resource name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => ResourceNameBody.Name ?? null; set => ResourceNameBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest _resourceNameBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpointsCheckNameRequest(); + + /// + /// The result returned from a managedPrivateEndpoints check name availability request. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest ResourceNameBody { get => this._resourceNameBody; set => this._resourceNameBody = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedPrivateEndpointsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedPrivateEndpointsCheckNameAvailability(ResourceGroupName, ClusterName, SubscriptionId, ResourceNameBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,SubscriptionId=SubscriptionId,body=ResourceNameBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public TestAzKustoManagedPrivateEndpointNameAvailability_CheckExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=ResourceNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, SubscriptionId=SubscriptionId, body=ResourceNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentity.cs new file mode 100644 index 000000000000..831093b39a8e --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentity.cs @@ -0,0 +1,399 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// + /// Checks that the managed private endpoints resource name is valid and is not already in use. + /// + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpointsCheckNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the managed private endpoints resource name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest _resourceName; + + /// + /// The result returned from a managedPrivateEndpoints check name availability request. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The result returned from a managedPrivateEndpoints check name availability request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The result returned from a managedPrivateEndpoints check name availability request.", + SerializedName = @"resourceName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest ResourceName { get => this._resourceName; set => this._resourceName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedPrivateEndpointsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ManagedPrivateEndpointsCheckNameAvailabilityViaIdentity(InputObject.Id, ResourceName, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ManagedPrivateEndpointsCheckNameAvailability(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.SubscriptionId ?? null, ResourceName, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public TestAzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentity() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentityExpanded.cs new file mode 100644 index 000000000000..97464fcf2c63 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentityExpanded.cs @@ -0,0 +1,403 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// + /// Checks that the managed private endpoints resource name is valid and is not already in use. + /// + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpointsCheckNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the managed private endpoints resource name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Managed private endpoint resource name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Managed private endpoint resource name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Managed private endpoint resource name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => ResourceNameBody.Name ?? null; set => ResourceNameBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest _resourceNameBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpointsCheckNameRequest(); + + /// + /// The result returned from a managedPrivateEndpoints check name availability request. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpointsCheckNameRequest ResourceNameBody { get => this._resourceNameBody; set => this._resourceNameBody = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedPrivateEndpointsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ManagedPrivateEndpointsCheckNameAvailabilityViaIdentity(InputObject.Id, ResourceNameBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ManagedPrivateEndpointsCheckNameAvailability(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.SubscriptionId ?? null, ResourceNameBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceNameBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoManagedPrivateEndpointNameAvailability_CheckViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ResourceNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoScriptNameAvailability_Check.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoScriptNameAvailability_Check.cs new file mode 100644 index 000000000000..b2197f2d9570 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoScriptNameAvailability_Check.cs @@ -0,0 +1,429 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the script name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scriptsCheckNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoScriptNameAvailability_Check", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the script name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoScriptNameAvailability_Check : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest _scriptName; + + /// A script name availability request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "A script name availability request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"A script name availability request.", + SerializedName = @"scriptName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest ScriptName { get => this._scriptName; set => this._scriptName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ScriptsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ScriptsCheckNameAvailability(ResourceGroupName, ClusterName, DatabaseName, SubscriptionId, ScriptName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,SubscriptionId=SubscriptionId,body=ScriptName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoScriptNameAvailability_Check() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=ScriptName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=ScriptName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoScriptNameAvailability_CheckExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoScriptNameAvailability_CheckExpanded.cs new file mode 100644 index 000000000000..473677c21c46 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoScriptNameAvailability_CheckExpanded.cs @@ -0,0 +1,433 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the script name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scriptsCheckNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoScriptNameAvailability_CheckExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the script name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoScriptNameAvailability_CheckExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Script name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Script name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Script name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => ScriptNameBody.Name ?? null; set => ScriptNameBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest _scriptNameBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ScriptCheckNameRequest(); + + /// A script name availability request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest ScriptNameBody { get => this._scriptNameBody; set => this._scriptNameBody = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ScriptsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ScriptsCheckNameAvailability(ResourceGroupName, ClusterName, DatabaseName, SubscriptionId, ScriptNameBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,SubscriptionId=SubscriptionId,body=ScriptNameBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoScriptNameAvailability_CheckExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=ScriptNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, SubscriptionId=SubscriptionId, body=ScriptNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoScriptNameAvailability_CheckViaIdentity.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoScriptNameAvailability_CheckViaIdentity.cs new file mode 100644 index 000000000000..a938f120dd67 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoScriptNameAvailability_CheckViaIdentity.cs @@ -0,0 +1,398 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the script name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scriptsCheckNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoScriptNameAvailability_CheckViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the script name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoScriptNameAvailability_CheckViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest _scriptName; + + /// A script name availability request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "A script name availability request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"A script name availability request.", + SerializedName = @"scriptName", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest ScriptName { get => this._scriptName; set => this._scriptName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ScriptsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ScriptsCheckNameAvailabilityViaIdentity(InputObject.Id, ScriptName, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ScriptsCheckNameAvailability(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.SubscriptionId ?? null, ScriptName, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ScriptName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoScriptNameAvailability_CheckViaIdentity() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ScriptName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ScriptName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoScriptNameAvailability_CheckViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoScriptNameAvailability_CheckViaIdentityExpanded.cs new file mode 100644 index 000000000000..d1b489765b09 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/TestAzKustoScriptNameAvailability_CheckViaIdentityExpanded.cs @@ -0,0 +1,402 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Checks that the script name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scriptsCheckNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzKustoScriptNameAvailability_CheckViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Checks that the script name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class TestAzKustoScriptNameAvailability_CheckViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Script name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Script name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Script name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => ScriptNameBody.Name ?? null; set => ScriptNameBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest _scriptNameBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ScriptCheckNameRequest(); + + /// A script name availability request. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScriptCheckNameRequest ScriptNameBody { get => this._scriptNameBody; set => this._scriptNameBody = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ScriptsCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ScriptsCheckNameAvailabilityViaIdentity(InputObject.Id, ScriptNameBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ScriptsCheckNameAvailability(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.SubscriptionId ?? null, ScriptNameBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ScriptNameBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzKustoScriptNameAvailability_CheckViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ScriptNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ScriptNameBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICheckNameResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoCluster_UpdateExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoCluster_UpdateExpanded.cs new file mode 100644 index 000000000000..1030ff57570f --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoCluster_UpdateExpanded.cs @@ -0,0 +1,877 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Update a Kusto cluster. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzKustoCluster_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Update a Kusto cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class UpdateAzKustoCluster_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// The cluster's accepted audiences. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The cluster's accepted audiences.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The cluster's accepted audiences.", + SerializedName = @"acceptedAudiences", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[] AcceptedAudience { get => ParametersBody.AcceptedAudience ?? null /* arrayOf */; set => ParametersBody.AcceptedAudience = value; } + + /// List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster.", + SerializedName = @"allowedFqdnList", + PossibleTypes = new [] { typeof(string) })] + public string[] AllowedFqdnList { get => ParametersBody.AllowedFqdnList ?? null /* arrayOf */; set => ParametersBody.AllowedFqdnList = value; } + + /// The list of ips in the format of CIDR allowed to connect to the cluster. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of ips in the format of CIDR allowed to connect to the cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of ips in the format of CIDR allowed to connect to the cluster.", + SerializedName = @"allowedIpRangeList", + PossibleTypes = new [] { typeof(string) })] + public string[] AllowedIPRangeList { get => ParametersBody.AllowedIPRangeList ?? null /* arrayOf */; set => ParametersBody.AllowedIPRangeList = value; } + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many + /// days). + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days).")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days).", + SerializedName = @"enableAutoStop", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnableAutoStop { get => ParametersBody.EnableAutoStop ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.EnableAutoStop = value; } + + /// A boolean value that indicates if the cluster's disks are encrypted. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicates if the cluster's disks are encrypted.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the cluster's disks are encrypted.", + SerializedName = @"enableDiskEncryption", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnableDiskEncryption { get => ParametersBody.EnableDiskEncryption ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.EnableDiskEncryption = value; } + + /// A boolean value that indicates if double encryption is enabled. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicates if double encryption is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if double encryption is enabled.", + SerializedName = @"enableDoubleEncryption", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnableDoubleEncryption { get => ParametersBody.EnableDoubleEncryption ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.EnableDoubleEncryption = value; } + + /// A boolean value that indicates if the purge operations are enabled. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicates if the purge operations are enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the purge operations are enabled.", + SerializedName = @"enablePurge", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnablePurge { get => ParametersBody.EnablePurge ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.EnablePurge = value; } + + /// A boolean value that indicates if the streaming ingest is enabled. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicates if the streaming ingest is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the streaming ingest is enabled.", + SerializedName = @"enableStreamingIngest", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnableStreamingIngest { get => ParametersBody.EnableStreamingIngest ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.EnableStreamingIngest = value; } + + /// The engine type + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The engine type")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The engine type", + SerializedName = @"engineType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType EngineType { get => ParametersBody.EngineType ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType)""); set => ParametersBody.EngineType = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// + /// 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 all identities. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "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 all identities.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + 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 all identities.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType IdentityType { get => ParametersBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType)""); set => ParametersBody.IdentityType = value; } + + /// + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities IdentityUserAssignedIdentity { get => ParametersBody.IdentityUserAssignedIdentity ?? null /* object */; set => ParametersBody.IdentityUserAssignedIdentity = value; } + + /// Backing field for property. + private string _ifMatch; + + /// + /// The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen ETag value to + /// prevent accidentally overwriting concurrent changes. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen ETag value to prevent accidentally overwriting concurrent changes.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen ETag value to prevent accidentally overwriting concurrent changes.", + SerializedName = @"If-Match", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Header)] + public string IfMatch { get => this._ifMatch; set => this._ifMatch = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// The name of the key vault key. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the key vault key.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the key vault key.", + SerializedName = @"keyName", + PossibleTypes = new [] { typeof(string) })] + public string KeyVaultPropertyKeyName { get => ParametersBody.KeyVaultPropertyKeyName ?? null; set => ParametersBody.KeyVaultPropertyKeyName = value; } + + /// The Uri of the key vault. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The Uri of the key vault.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Uri of the key vault.", + SerializedName = @"keyVaultUri", + PossibleTypes = new [] { typeof(string) })] + public string KeyVaultPropertyKeyVaultUri { get => ParametersBody.KeyVaultPropertyKeyVaultUri ?? null; set => ParametersBody.KeyVaultPropertyKeyVaultUri = value; } + + /// The version of the key vault key. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The version of the key vault key.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the key vault key.", + SerializedName = @"keyVersion", + PossibleTypes = new [] { typeof(string) })] + public string KeyVaultPropertyKeyVersion { get => ParametersBody.KeyVaultPropertyKeyVersion ?? null; set => ParametersBody.KeyVaultPropertyKeyVersion = value; } + + /// The user assigned identity (ARM resource id) that has access to the key. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user assigned identity (ARM resource id) that has access to the key.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user assigned identity (ARM resource id) that has access to the key.", + SerializedName = @"userIdentity", + PossibleTypes = new [] { typeof(string) })] + public string KeyVaultPropertyUserIdentity { get => ParametersBody.KeyVaultPropertyUserIdentity ?? null; set => ParametersBody.KeyVaultPropertyUserIdentity = value; } + + /// Resource location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => ParametersBody.Location ?? null; set => ParametersBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ClusterName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// A boolean value that indicate if the optimized autoscale feature is enabled or not. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicate if the optimized autoscale feature is enabled or not.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicate if the optimized autoscale feature is enabled or not.", + SerializedName = @"isEnabled", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter OptimizedAutoscaleIsEnabled { get => ParametersBody.OptimizedAutoscaleIsEnabled ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.OptimizedAutoscaleIsEnabled = value; } + + /// Maximum allowed instances count. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum allowed instances count.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum allowed instances count.", + SerializedName = @"maximum", + PossibleTypes = new [] { typeof(int) })] + public int OptimizedAutoscaleMaximum { get => ParametersBody.OptimizedAutoscaleMaximum ?? default(int); set => ParametersBody.OptimizedAutoscaleMaximum = value; } + + /// Minimum allowed instances count. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Minimum allowed instances count.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum allowed instances count.", + SerializedName = @"minimum", + PossibleTypes = new [] { typeof(int) })] + public int OptimizedAutoscaleMinimum { get => ParametersBody.OptimizedAutoscaleMinimum ?? default(int); set => ParametersBody.OptimizedAutoscaleMinimum = value; } + + /// The version of the template defined, for instance 1. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The version of the template defined, for instance 1.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the template defined, for instance 1.", + SerializedName = @"version", + PossibleTypes = new [] { typeof(int) })] + public int OptimizedAutoscaleVersion { get => ParametersBody.OptimizedAutoscaleVersion ?? default(int); set => ParametersBody.OptimizedAutoscaleVersion = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdate _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterUpdate(); + + /// Class representing an update to a Kusto cluster. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdate ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6)", + SerializedName = @"publicIPType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType PublicIPType { get => ParametersBody.PublicIPType ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType)""); set => ParametersBody.PublicIPType = value; } + + /// + /// Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster + /// is allowed + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster is allowed")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster is allowed", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess PublicNetworkAccess { get => ParametersBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess)""); set => ParametersBody.PublicNetworkAccess = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// + /// Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled' + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled'")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled'", + SerializedName = @"restrictOutboundNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag RestrictOutboundNetworkAccess { get => ParametersBody.RestrictOutboundNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag)""); set => ParametersBody.RestrictOutboundNetworkAccess = value; } + + /// The number of instances of the cluster. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of instances of the cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of instances of the cluster.", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + public int SkuCapacity { get => ParametersBody.SkuCapacity ?? default(int); set => ParametersBody.SkuCapacity = value; } + + /// SKU name. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "SKU name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SKU name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName SkuName { get => ParametersBody.SkuName ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName)""); set => ParametersBody.SkuName = value; } + + /// SKU tier. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "SKU tier.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SKU tier.", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier SkuTier { get => ParametersBody.SkuTier ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier)""); set => ParametersBody.SkuTier = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Resource tags. + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource tags.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags Tag { get => ParametersBody.Tag ?? null /* object */; set => ParametersBody.Tag = value; } + + /// The cluster's external tenants. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The cluster's external tenants.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The cluster's external tenants.", + SerializedName = @"trustedExternalTenants", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[] TrustedExternalTenant { get => ParametersBody.TrustedExternalTenant ?? null /* arrayOf */; set => ParametersBody.TrustedExternalTenant = value; } + + /// Virtual Cluster graduation properties + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Virtual Cluster graduation properties")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Virtual Cluster graduation properties", + SerializedName = @"virtualClusterGraduationProperties", + PossibleTypes = new [] { typeof(string) })] + public string VirtualClusterGraduationProperty { get => ParametersBody.VirtualClusterGraduationProperty ?? null; set => ParametersBody.VirtualClusterGraduationProperty = value; } + + /// Data management's service public IP address resource id. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Data management's service public IP address resource id.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Data management's service public IP address resource id.", + SerializedName = @"dataManagementPublicIpId", + PossibleTypes = new [] { typeof(string) })] + public string VirtualNetworkConfigurationDataManagementPublicIPId { get => ParametersBody.VirtualNetworkConfigurationDataManagementPublicIPId ?? null; set => ParametersBody.VirtualNetworkConfigurationDataManagementPublicIPId = value; } + + /// Engine service's public IP address resource id. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Engine service's public IP address resource id.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Engine service's public IP address resource id.", + SerializedName = @"enginePublicIpId", + PossibleTypes = new [] { typeof(string) })] + public string VirtualNetworkConfigurationEnginePublicIPId { get => ParametersBody.VirtualNetworkConfigurationEnginePublicIPId ?? null; set => ParametersBody.VirtualNetworkConfigurationEnginePublicIPId = value; } + + /// The subnet resource id. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The subnet resource id.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The subnet resource id.", + SerializedName = @"subnetId", + PossibleTypes = new [] { typeof(string) })] + public string VirtualNetworkConfigurationSubnetId { get => ParametersBody.VirtualNetworkConfigurationSubnetId ?? null; set => ParametersBody.VirtualNetworkConfigurationSubnetId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzKustoCluster_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.UpdateAzKustoCluster_UpdateExpanded Clone() + { + var clone = new UpdateAzKustoCluster_UpdateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + clone.IfMatch = this.IfMatch; + clone.SubscriptionId = this.SubscriptionId; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ClustersUpdate(ResourceGroupName, Name, this.InvocationInformation.BoundParameters.ContainsKey("IfMatch") ? IfMatch : null, SubscriptionId, ParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,Name=Name,IfMatch=this.InvocationInformation.BoundParameters.ContainsKey("IfMatch") ? IfMatch : null,SubscriptionId=SubscriptionId,body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzKustoCluster_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, Name=Name, IfMatch=this.InvocationInformation.BoundParameters.ContainsKey("IfMatch") ? IfMatch : null, SubscriptionId=SubscriptionId, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, Name=Name, IfMatch=this.InvocationInformation.BoundParameters.ContainsKey("IfMatch") ? IfMatch : null, SubscriptionId=SubscriptionId, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoCluster_UpdateViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoCluster_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..78cd100881b9 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoCluster_UpdateViaIdentityExpanded.cs @@ -0,0 +1,852 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Update a Kusto cluster. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzKustoCluster_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Update a Kusto cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class UpdateAzKustoCluster_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// The cluster's accepted audiences. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The cluster's accepted audiences.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The cluster's accepted audiences.", + SerializedName = @"acceptedAudiences", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IAcceptedAudiences[] AcceptedAudience { get => ParametersBody.AcceptedAudience ?? null /* arrayOf */; set => ParametersBody.AcceptedAudience = value; } + + /// List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster.", + SerializedName = @"allowedFqdnList", + PossibleTypes = new [] { typeof(string) })] + public string[] AllowedFqdnList { get => ParametersBody.AllowedFqdnList ?? null /* arrayOf */; set => ParametersBody.AllowedFqdnList = value; } + + /// The list of ips in the format of CIDR allowed to connect to the cluster. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of ips in the format of CIDR allowed to connect to the cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of ips in the format of CIDR allowed to connect to the cluster.", + SerializedName = @"allowedIpRangeList", + PossibleTypes = new [] { typeof(string) })] + public string[] AllowedIPRangeList { get => ParametersBody.AllowedIPRangeList ?? null /* arrayOf */; set => ParametersBody.AllowedIPRangeList = value; } + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many + /// days). + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days).")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days).", + SerializedName = @"enableAutoStop", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnableAutoStop { get => ParametersBody.EnableAutoStop ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.EnableAutoStop = value; } + + /// A boolean value that indicates if the cluster's disks are encrypted. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicates if the cluster's disks are encrypted.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the cluster's disks are encrypted.", + SerializedName = @"enableDiskEncryption", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnableDiskEncryption { get => ParametersBody.EnableDiskEncryption ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.EnableDiskEncryption = value; } + + /// A boolean value that indicates if double encryption is enabled. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicates if double encryption is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if double encryption is enabled.", + SerializedName = @"enableDoubleEncryption", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnableDoubleEncryption { get => ParametersBody.EnableDoubleEncryption ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.EnableDoubleEncryption = value; } + + /// A boolean value that indicates if the purge operations are enabled. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicates if the purge operations are enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the purge operations are enabled.", + SerializedName = @"enablePurge", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnablePurge { get => ParametersBody.EnablePurge ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.EnablePurge = value; } + + /// A boolean value that indicates if the streaming ingest is enabled. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicates if the streaming ingest is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicates if the streaming ingest is enabled.", + SerializedName = @"enableStreamingIngest", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnableStreamingIngest { get => ParametersBody.EnableStreamingIngest ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.EnableStreamingIngest = value; } + + /// The engine type + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The engine type")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The engine type", + SerializedName = @"engineType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType EngineType { get => ParametersBody.EngineType ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.EngineType)""); set => ParametersBody.EngineType = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// + /// 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 all identities. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "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 all identities.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + 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 all identities.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType IdentityType { get => ParametersBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.IdentityType)""); set => ParametersBody.IdentityType = value; } + + /// + /// The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM + /// resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IIdentityUserAssignedIdentities IdentityUserAssignedIdentity { get => ParametersBody.IdentityUserAssignedIdentity ?? null /* object */; set => ParametersBody.IdentityUserAssignedIdentity = value; } + + /// Backing field for property. + private string _ifMatch; + + /// + /// The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen ETag value to + /// prevent accidentally overwriting concurrent changes. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen ETag value to prevent accidentally overwriting concurrent changes.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen ETag value to prevent accidentally overwriting concurrent changes.", + SerializedName = @"If-Match", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Header)] + public string IfMatch { get => this._ifMatch; set => this._ifMatch = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// The name of the key vault key. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The name of the key vault key.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the key vault key.", + SerializedName = @"keyName", + PossibleTypes = new [] { typeof(string) })] + public string KeyVaultPropertyKeyName { get => ParametersBody.KeyVaultPropertyKeyName ?? null; set => ParametersBody.KeyVaultPropertyKeyName = value; } + + /// The Uri of the key vault. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The Uri of the key vault.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Uri of the key vault.", + SerializedName = @"keyVaultUri", + PossibleTypes = new [] { typeof(string) })] + public string KeyVaultPropertyKeyVaultUri { get => ParametersBody.KeyVaultPropertyKeyVaultUri ?? null; set => ParametersBody.KeyVaultPropertyKeyVaultUri = value; } + + /// The version of the key vault key. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The version of the key vault key.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the key vault key.", + SerializedName = @"keyVersion", + PossibleTypes = new [] { typeof(string) })] + public string KeyVaultPropertyKeyVersion { get => ParametersBody.KeyVaultPropertyKeyVersion ?? null; set => ParametersBody.KeyVaultPropertyKeyVersion = value; } + + /// The user assigned identity (ARM resource id) that has access to the key. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user assigned identity (ARM resource id) that has access to the key.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user assigned identity (ARM resource id) that has access to the key.", + SerializedName = @"userIdentity", + PossibleTypes = new [] { typeof(string) })] + public string KeyVaultPropertyUserIdentity { get => ParametersBody.KeyVaultPropertyUserIdentity ?? null; set => ParametersBody.KeyVaultPropertyUserIdentity = value; } + + /// Resource location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => ParametersBody.Location ?? null; set => ParametersBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// A boolean value that indicate if the optimized autoscale feature is enabled or not. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A boolean value that indicate if the optimized autoscale feature is enabled or not.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A boolean value that indicate if the optimized autoscale feature is enabled or not.", + SerializedName = @"isEnabled", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter OptimizedAutoscaleIsEnabled { get => ParametersBody.OptimizedAutoscaleIsEnabled ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.OptimizedAutoscaleIsEnabled = value; } + + /// Maximum allowed instances count. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum allowed instances count.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum allowed instances count.", + SerializedName = @"maximum", + PossibleTypes = new [] { typeof(int) })] + public int OptimizedAutoscaleMaximum { get => ParametersBody.OptimizedAutoscaleMaximum ?? default(int); set => ParametersBody.OptimizedAutoscaleMaximum = value; } + + /// Minimum allowed instances count. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Minimum allowed instances count.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum allowed instances count.", + SerializedName = @"minimum", + PossibleTypes = new [] { typeof(int) })] + public int OptimizedAutoscaleMinimum { get => ParametersBody.OptimizedAutoscaleMinimum ?? default(int); set => ParametersBody.OptimizedAutoscaleMinimum = value; } + + /// The version of the template defined, for instance 1. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The version of the template defined, for instance 1.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of the template defined, for instance 1.", + SerializedName = @"version", + PossibleTypes = new [] { typeof(int) })] + public int OptimizedAutoscaleVersion { get => ParametersBody.OptimizedAutoscaleVersion ?? default(int); set => ParametersBody.OptimizedAutoscaleVersion = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdate _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ClusterUpdate(); + + /// Class representing an update to a Kusto cluster. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdate ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6) + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6)", + SerializedName = @"publicIPType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType PublicIPType { get => ParametersBody.PublicIPType ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicIPType)""); set => ParametersBody.PublicIPType = value; } + + /// + /// Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster + /// is allowed + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster is allowed")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster is allowed", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess PublicNetworkAccess { get => ParametersBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.PublicNetworkAccess)""); set => ParametersBody.PublicNetworkAccess = value; } + + /// + /// Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled' + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled'")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled'", + SerializedName = @"restrictOutboundNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag RestrictOutboundNetworkAccess { get => ParametersBody.RestrictOutboundNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.ClusterNetworkAccessFlag)""); set => ParametersBody.RestrictOutboundNetworkAccess = value; } + + /// The number of instances of the cluster. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of instances of the cluster.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of instances of the cluster.", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + public int SkuCapacity { get => ParametersBody.SkuCapacity ?? default(int); set => ParametersBody.SkuCapacity = value; } + + /// SKU name. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "SKU name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SKU name.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName SkuName { get => ParametersBody.SkuName ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuName)""); set => ParametersBody.SkuName = value; } + + /// SKU tier. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "SKU tier.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SKU tier.", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier SkuTier { get => ParametersBody.SkuTier ?? ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.AzureSkuTier)""); set => ParametersBody.SkuTier = value; } + + /// Resource tags. + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource tags.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource tags.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IClusterUpdateTags Tag { get => ParametersBody.Tag ?? null /* object */; set => ParametersBody.Tag = value; } + + /// The cluster's external tenants. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The cluster's external tenants.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The cluster's external tenants.", + SerializedName = @"trustedExternalTenants", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant) })] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ITrustedExternalTenant[] TrustedExternalTenant { get => ParametersBody.TrustedExternalTenant ?? null /* arrayOf */; set => ParametersBody.TrustedExternalTenant = value; } + + /// Virtual Cluster graduation properties + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Virtual Cluster graduation properties")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Virtual Cluster graduation properties", + SerializedName = @"virtualClusterGraduationProperties", + PossibleTypes = new [] { typeof(string) })] + public string VirtualClusterGraduationProperty { get => ParametersBody.VirtualClusterGraduationProperty ?? null; set => ParametersBody.VirtualClusterGraduationProperty = value; } + + /// Data management's service public IP address resource id. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Data management's service public IP address resource id.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Data management's service public IP address resource id.", + SerializedName = @"dataManagementPublicIpId", + PossibleTypes = new [] { typeof(string) })] + public string VirtualNetworkConfigurationDataManagementPublicIPId { get => ParametersBody.VirtualNetworkConfigurationDataManagementPublicIPId ?? null; set => ParametersBody.VirtualNetworkConfigurationDataManagementPublicIPId = value; } + + /// Engine service's public IP address resource id. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Engine service's public IP address resource id.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Engine service's public IP address resource id.", + SerializedName = @"enginePublicIpId", + PossibleTypes = new [] { typeof(string) })] + public string VirtualNetworkConfigurationEnginePublicIPId { get => ParametersBody.VirtualNetworkConfigurationEnginePublicIPId ?? null; set => ParametersBody.VirtualNetworkConfigurationEnginePublicIPId = value; } + + /// The subnet resource id. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The subnet resource id.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The subnet resource id.", + SerializedName = @"subnetId", + PossibleTypes = new [] { typeof(string) })] + public string VirtualNetworkConfigurationSubnetId { get => ParametersBody.VirtualNetworkConfigurationSubnetId ?? null; set => ParametersBody.VirtualNetworkConfigurationSubnetId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzKustoCluster_UpdateViaIdentityExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.UpdateAzKustoCluster_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzKustoCluster_UpdateViaIdentityExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + clone.IfMatch = this.IfMatch; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ClustersUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ClustersUpdateViaIdentity(InputObject.Id, this.InvocationInformation.BoundParameters.ContainsKey("IfMatch") ? IfMatch : null, ParametersBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ClustersUpdate(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, this.InvocationInformation.BoundParameters.ContainsKey("IfMatch") ? IfMatch : null, InputObject.SubscriptionId ?? null, ParametersBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { IfMatch=this.InvocationInformation.BoundParameters.ContainsKey("IfMatch") ? IfMatch : null,body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzKustoCluster_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { IfMatch=this.InvocationInformation.BoundParameters.ContainsKey("IfMatch") ? IfMatch : null, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { IfMatch=this.InvocationInformation.BoundParameters.ContainsKey("IfMatch") ? IfMatch : null, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ICluster + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoDataConnection_UpdateExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoDataConnection_UpdateExpanded.cs new file mode 100644 index 000000000000..ff8b92b482ac --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoDataConnection_UpdateExpanded.cs @@ -0,0 +1,529 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Updates a data connection. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnections/{dataConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzKustoDataConnection_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Updates a data connection.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class UpdateAzKustoDataConnection_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Kind of the endpoint for the data connection + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Kind of the endpoint for the data connection")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Kind of the endpoint for the data connection", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind Kind { get => ParametersBody.Kind; set => ParametersBody.Kind = value; } + + /// Resource location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => ParametersBody.Location ?? null; set => ParametersBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the data connection. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the data connection.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the data connection.", + SerializedName = @"dataConnectionName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DataConnectionName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection(); + + /// Class representing an data connection. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzKustoDataConnection_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.UpdateAzKustoDataConnection_UpdateExpanded Clone() + { + var clone = new UpdateAzKustoDataConnection_UpdateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.DatabaseName = this.DatabaseName; + clone.Name = this.Name; + clone.SubscriptionId = this.SubscriptionId; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DataConnectionsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DataConnectionsUpdate(ResourceGroupName, ClusterName, DatabaseName, Name, SubscriptionId, ParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,Name=Name,SubscriptionId=SubscriptionId,body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzKustoDataConnection_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, Name=Name, SubscriptionId=SubscriptionId, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, Name=Name, SubscriptionId=SubscriptionId, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoDataConnection_UpdateViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoDataConnection_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..9c4bf0127982 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoDataConnection_UpdateViaIdentityExpanded.cs @@ -0,0 +1,482 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Updates a data connection. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/dataConnections/{dataConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzKustoDataConnection_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Updates a data connection.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class UpdateAzKustoDataConnection_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Kind of the endpoint for the data connection + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Kind of the endpoint for the data connection")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Kind of the endpoint for the data connection", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.DataConnectionKind Kind { get => ParametersBody.Kind; set => ParametersBody.Kind = value; } + + /// Resource location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => ParametersBody.Location ?? null; set => ParametersBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.DataConnection(); + + /// Class representing an data connection. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzKustoDataConnection_UpdateViaIdentityExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.UpdateAzKustoDataConnection_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzKustoDataConnection_UpdateViaIdentityExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DataConnectionsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DataConnectionsUpdateViaIdentity(InputObject.Id, ParametersBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DataConnectionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DataConnectionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DataConnectionsUpdate(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.DataConnectionName ?? null, InputObject.SubscriptionId ?? null, ParametersBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzKustoDataConnection_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDataConnection + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoDatabase_UpdateExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoDatabase_UpdateExpanded.cs new file mode 100644 index 000000000000..e6cc06eb4599 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoDatabase_UpdateExpanded.cs @@ -0,0 +1,514 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Updates a database. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzKustoDatabase_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Updates a database.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class UpdateAzKustoDatabase_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Kind of the database + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Kind of the database")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Kind of the database", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind Kind { get => ParametersBody.Kind; set => ParametersBody.Kind = value; } + + /// Resource location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => ParametersBody.Location ?? null; set => ParametersBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DatabaseName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Database(); + + /// Class representing a Kusto database. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzKustoDatabase_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.UpdateAzKustoDatabase_UpdateExpanded Clone() + { + var clone = new UpdateAzKustoDatabase_UpdateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.Name = this.Name; + clone.SubscriptionId = this.SubscriptionId; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DatabasesUpdate(ResourceGroupName, ClusterName, Name, SubscriptionId, ParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,Name=Name,SubscriptionId=SubscriptionId,body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzKustoDatabase_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, SubscriptionId=SubscriptionId, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, SubscriptionId=SubscriptionId, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoDatabase_UpdateViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoDatabase_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..9ff562031ec3 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoDatabase_UpdateViaIdentityExpanded.cs @@ -0,0 +1,478 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Updates a database. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzKustoDatabase_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Updates a database.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class UpdateAzKustoDatabase_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Kind of the database + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Kind of the database")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Kind of the database", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind))] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Support.Kind Kind { get => ParametersBody.Kind; set => ParametersBody.Kind = value; } + + /// Resource location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Resource location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => ParametersBody.Location ?? null; set => ParametersBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Database(); + + /// Class representing a Kusto database. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzKustoDatabase_UpdateViaIdentityExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.UpdateAzKustoDatabase_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzKustoDatabase_UpdateViaIdentityExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DatabasesUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DatabasesUpdateViaIdentity(InputObject.Id, ParametersBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DatabasesUpdate(InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.SubscriptionId ?? null, ParametersBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzKustoDatabase_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IDatabase + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoManagedPrivateEndpoint_UpdateExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoManagedPrivateEndpoint_UpdateExpanded.cs new file mode 100644 index 000000000000..43713cf5ca39 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoManagedPrivateEndpoint_UpdateExpanded.cs @@ -0,0 +1,537 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Updates a managed private endpoint. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpoints/{managedPrivateEndpointName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzKustoManagedPrivateEndpoint_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Updates a managed private endpoint.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class UpdateAzKustoManagedPrivateEndpoint_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// The groupId in which the managed private endpoint is created. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The groupId in which the managed private endpoint is created.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The groupId in which the managed private endpoint is created.", + SerializedName = @"groupId", + PossibleTypes = new [] { typeof(string) })] + public string GroupId { get => ParametersBody.GroupId ?? null; set => ParametersBody.GroupId = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the managed private endpoint. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the managed private endpoint.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the managed private endpoint.", + SerializedName = @"managedPrivateEndpointName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ManagedPrivateEndpointName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpoint(); + + /// Class representing a managed private endpoint. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// + /// The ARM resource ID of the resource for which the managed private endpoint is created. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The ARM resource ID of the resource for which the managed private endpoint is created.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ARM resource ID of the resource for which the managed private endpoint is created.", + SerializedName = @"privateLinkResourceId", + PossibleTypes = new [] { typeof(string) })] + public string PrivateLinkResourceId { get => ParametersBody.PrivateLinkResourceId ?? null; set => ParametersBody.PrivateLinkResourceId = value; } + + /// The region of the resource to which the managed private endpoint is created. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The region of the resource to which the managed private endpoint is created.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The region of the resource to which the managed private endpoint is created.", + SerializedName = @"privateLinkResourceRegion", + PossibleTypes = new [] { typeof(string) })] + public string PrivateLinkResourceRegion { get => ParametersBody.PrivateLinkResourceRegion ?? null; set => ParametersBody.PrivateLinkResourceRegion = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// The user request message. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user request message.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user request message.", + SerializedName = @"requestMessage", + PossibleTypes = new [] { typeof(string) })] + public string RequestMessage { get => ParametersBody.RequestMessage ?? null; set => ParametersBody.RequestMessage = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzKustoManagedPrivateEndpoint_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.UpdateAzKustoManagedPrivateEndpoint_UpdateExpanded Clone() + { + var clone = new UpdateAzKustoManagedPrivateEndpoint_UpdateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedPrivateEndpointsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ManagedPrivateEndpointsUpdate(SubscriptionId, ResourceGroupName, ClusterName, Name, ParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,Name=Name,body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzKustoManagedPrivateEndpoint_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, Name=Name, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoManagedPrivateEndpoint_UpdateViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoManagedPrivateEndpoint_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..3edb36bd0276 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoManagedPrivateEndpoint_UpdateViaIdentityExpanded.cs @@ -0,0 +1,503 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Updates a managed private endpoint. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/managedPrivateEndpoints/{managedPrivateEndpointName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzKustoManagedPrivateEndpoint_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Updates a managed private endpoint.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class UpdateAzKustoManagedPrivateEndpoint_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// The groupId in which the managed private endpoint is created. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The groupId in which the managed private endpoint is created.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The groupId in which the managed private endpoint is created.", + SerializedName = @"groupId", + PossibleTypes = new [] { typeof(string) })] + public string GroupId { get => ParametersBody.GroupId ?? null; set => ParametersBody.GroupId = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.ManagedPrivateEndpoint(); + + /// Class representing a managed private endpoint. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// + /// The ARM resource ID of the resource for which the managed private endpoint is created. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The ARM resource ID of the resource for which the managed private endpoint is created.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ARM resource ID of the resource for which the managed private endpoint is created.", + SerializedName = @"privateLinkResourceId", + PossibleTypes = new [] { typeof(string) })] + public string PrivateLinkResourceId { get => ParametersBody.PrivateLinkResourceId ?? null; set => ParametersBody.PrivateLinkResourceId = value; } + + /// The region of the resource to which the managed private endpoint is created. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The region of the resource to which the managed private endpoint is created.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The region of the resource to which the managed private endpoint is created.", + SerializedName = @"privateLinkResourceRegion", + PossibleTypes = new [] { typeof(string) })] + public string PrivateLinkResourceRegion { get => ParametersBody.PrivateLinkResourceRegion ?? null; set => ParametersBody.PrivateLinkResourceRegion = value; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// The user request message. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user request message.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user request message.", + SerializedName = @"requestMessage", + PossibleTypes = new [] { typeof(string) })] + public string RequestMessage { get => ParametersBody.RequestMessage ?? null; set => ParametersBody.RequestMessage = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzKustoManagedPrivateEndpoint_UpdateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.UpdateAzKustoManagedPrivateEndpoint_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzKustoManagedPrivateEndpoint_UpdateViaIdentityExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ManagedPrivateEndpointsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ManagedPrivateEndpointsUpdateViaIdentity(InputObject.Id, ParametersBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ManagedPrivateEndpointName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ManagedPrivateEndpointName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ManagedPrivateEndpointsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.ManagedPrivateEndpointName ?? null, ParametersBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzKustoManagedPrivateEndpoint_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IManagedPrivateEndpoint + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoScript_UpdateExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoScript_UpdateExpanded.cs new file mode 100644 index 000000000000..9a8fa582847e --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoScript_UpdateExpanded.cs @@ -0,0 +1,568 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Updates a database script. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scripts/{scriptName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzKustoScript_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Updates a database script.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class UpdateAzKustoScript_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Backing field for property. + private string _clusterName; + + /// The name of the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto cluster.", + SerializedName = @"clusterName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ClusterName { get => this._clusterName; set => this._clusterName = value; } + + /// Flag that indicates whether to continue if one of the command fails. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Flag that indicates whether to continue if one of the command fails.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Flag that indicates whether to continue if one of the command fails.", + SerializedName = @"continueOnErrors", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ContinueOnError { get => ParametersBody.ContinueOnError ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.ContinueOnError = value; } + + /// Backing field for property. + private string _databaseName; + + /// The name of the database in the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the database in the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the database in the Kusto cluster.", + SerializedName = @"databaseName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string DatabaseName { get => this._databaseName; set => this._databaseName = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// A unique string. If changed the script will be applied again. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A unique string. If changed the script will be applied again.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A unique string. If changed the script will be applied again.", + SerializedName = @"forceUpdateTag", + PossibleTypes = new [] { typeof(string) })] + public string ForceUpdateTag { get => ParametersBody.ForceUpdateTag ?? null; set => ParametersBody.ForceUpdateTag = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Kusto database script. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Kusto database script.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Kusto database script.", + SerializedName = @"scriptName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ScriptName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Script(); + + /// Class representing a database script. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group containing the Kusto cluster. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group containing the Kusto cluster.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group containing the Kusto cluster.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// + /// The script content. This property should be used when the script is provide inline and not through file in a SA. Must + /// not be used together with scriptUrl and scriptUrlSasToken properties. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The script content. This property should be used when the script is provide inline and not through file in a SA. Must not be used together with scriptUrl and scriptUrlSasToken properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The script content. This property should be used when the script is provide inline and not through file in a SA. Must not be used together with scriptUrl and scriptUrlSasToken properties.", + SerializedName = @"scriptContent", + PossibleTypes = new [] { typeof(string) })] + public string ScriptContent { get => ParametersBody.Content ?? null; set => ParametersBody.Content = value; } + + /// + /// The url to the KQL script blob file. Must not be used together with scriptContent property + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The url to the KQL script blob file. Must not be used together with scriptContent property")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The url to the KQL script blob file. Must not be used together with scriptContent property", + SerializedName = @"scriptUrl", + PossibleTypes = new [] { typeof(string) })] + public string ScriptUrl { get => ParametersBody.Url ?? null; set => ParametersBody.Url = value; } + + /// + /// The SaS token that provide read access to the file which contain the script. Must be provided when using scriptUrl property. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The SaS token that provide read access to the file which contain the script. Must be provided when using scriptUrl property.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The SaS token that provide read access to the file which contain the script. Must be provided when using scriptUrl property.", + SerializedName = @"scriptUrlSasToken", + PossibleTypes = new [] { typeof(string) })] + public string ScriptUrlSasToken { get => ParametersBody.UrlSasToken ?? null; set => ParametersBody.UrlSasToken = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of + /// the URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzKustoScript_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.UpdateAzKustoScript_UpdateExpanded Clone() + { + var clone = new UpdateAzKustoScript_UpdateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ClusterName = this.ClusterName; + clone.DatabaseName = this.DatabaseName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ScriptsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ScriptsUpdate(SubscriptionId, ResourceGroupName, ClusterName, DatabaseName, Name, ParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ClusterName=ClusterName,DatabaseName=DatabaseName,Name=Name,body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzKustoScript_UpdateExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, Name=Name, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ClusterName=ClusterName, DatabaseName=DatabaseName, Name=Name, body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoScript_UpdateViaIdentityExpanded.cs b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoScript_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..bb729f24bc67 --- /dev/null +++ b/swaggerci/azure-kusto/generated/cmdlets/UpdateAzKustoScript_UpdateViaIdentityExpanded.cs @@ -0,0 +1,521 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Extensions; + using System; + + /// Updates a database script. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/databases/{databaseName}/scripts/{scriptName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzKustoScript_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript))] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Description(@"Updates a database script.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Generated] + public partial class UpdateAzKustoScript_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// when specified, runs this cmdlet as a PowerShell job + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command as a job")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.KustoManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.ClientAPI; + + /// Flag that indicates whether to continue if one of the command fails. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Flag that indicates whether to continue if one of the command fails.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Flag that indicates whether to continue if one of the command fails.", + SerializedName = @"continueOnErrors", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ContinueOnError { get => ParametersBody.ContinueOnError ?? default(global::System.Management.Automation.SwitchParameter); set => ParametersBody.ContinueOnError = value; } + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// A unique string. If changed the script will be applied again. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A unique string. If changed the script will be applied again.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A unique string. If changed the script will be applied again.", + SerializedName = @"forceUpdateTag", + PossibleTypes = new [] { typeof(string) })] + public string ForceUpdateTag { get => ParametersBody.ForceUpdateTag ?? null; set => ParametersBody.ForceUpdateTag = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.IKustoIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript _parametersBody= new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.Script(); + + /// Class representing a database script. + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript ParametersBody { get => this._parametersBody; set => this._parametersBody = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// The script content. This property should be used when the script is provide inline and not through file in a SA. Must + /// not be used together with scriptUrl and scriptUrlSasToken properties. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The script content. This property should be used when the script is provide inline and not through file in a SA. Must not be used together with scriptUrl and scriptUrlSasToken properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The script content. This property should be used when the script is provide inline and not through file in a SA. Must not be used together with scriptUrl and scriptUrlSasToken properties.", + SerializedName = @"scriptContent", + PossibleTypes = new [] { typeof(string) })] + public string ScriptContent { get => ParametersBody.Content ?? null; set => ParametersBody.Content = value; } + + /// + /// The url to the KQL script blob file. Must not be used together with scriptContent property + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The url to the KQL script blob file. Must not be used together with scriptContent property")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The url to the KQL script blob file. Must not be used together with scriptContent property", + SerializedName = @"scriptUrl", + PossibleTypes = new [] { typeof(string) })] + public string ScriptUrl { get => ParametersBody.Url ?? null; set => ParametersBody.Url = value; } + + /// + /// The SaS token that provide read access to the file which contain the script. Must be provided when using scriptUrl property. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The SaS token that provide read access to the file which contain the script. Must be provided when using scriptUrl property.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.Category(global::Microsoft.Azure.PowerShell.Cmdlets.Kusto.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The SaS token that provide read access to the file which contain the script. Must be provided when using scriptUrl property.", + SerializedName = @"scriptUrlSasToken", + PossibleTypes = new [] { typeof(string) })] + public string ScriptUrlSasToken { get => ParametersBody.UrlSasToken ?? null; set => ParametersBody.UrlSasToken = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzKustoScript_UpdateViaIdentityExpanded + public Microsoft.Azure.PowerShell.Cmdlets.Kusto.Cmdlets.UpdateAzKustoScript_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzKustoScript_UpdateViaIdentityExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.ParametersBody = this.ParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Information: + { + // When an operation supports asjob, Information messages must go thru verbose. + WriteVerbose($"INFORMATION: {(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.DelayBeforePolling: + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("NoWait")) + { + var data = messageData(); + if (data.ResponseMessage is System.Net.Http.HttpResponseMessage response) + { + var asyncOperation = response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = response.GetFirstHeader(@"Location"); + var uri = global::System.String.IsNullOrEmpty(asyncOperation) ? global::System.String.IsNullOrEmpty(location) ? response.RequestMessage.RequestUri.AbsoluteUri : location : asyncOperation; + WriteObject(new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ScriptsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncJob(instance, this.MyInvocation.Line, this.MyInvocation.MyCommand.Name, this._cancellationTokenSource.Token, this._cancellationTokenSource.Cancel); + JobRepository.Add(job); + var task = instance.ProcessRecordAsync(); + job.Monitor(task); + WriteObject(job); + } + else + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.Kusto.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ScriptsUpdateViaIdentity(InputObject.Id, ParametersBody, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ClusterName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ClusterName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DatabaseName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DatabaseName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ScriptName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ScriptName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ScriptsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ClusterName ?? null, InputObject.DatabaseName ?? null, InputObject.ScriptName ?? null, ParametersBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzKustoScript_UpdateViaIdentityExpanded() + { + + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.Message; + if ((null == code || null == message)) + { + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.Kusto.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + else + { + WriteError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception($"[{code}] : {message}"), code?.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(message) { RecommendedAction = global::System.String.Empty } + }); + } + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.Kusto.Models.Api20220201.IScript + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Accounts.format.ps1xml b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Accounts.format.ps1xml new file mode 100644 index 000000000000..62bf0183a3c0 --- /dev/null +++ b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Accounts.format.ps1xml @@ -0,0 +1,437 @@ + + + + + AzureErrorRecords + + Microsoft.Azure.Commands.Profile.Errors.AzureErrorRecord + Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord + Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord + + + + + + Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord + + AzureErrorRecords + + + $_.InvocationInfo.HistoryId + + + + + + + + ErrorCategory + + + ErrorDetail + + + + "{" + $_.InvocationInfo.MyCommand + "}" + + + + $_.InvocationInfo.Line + + + + $_.InvocationInfo.PositionMessage + + + + $_.InvocationInfo.BoundParameters + + + + $_.InvocationInfo.UnboundParameters + + + + $_.InvocationInfo.HistoryId + + + + + + + AzureErrorRecords + $_.GetType() -eq [Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord] + + + + + RequestId + + + Message + + + ServerMessage + + + ServerResponse + + + RequestMessage + + + + "{" + $_.InvocationInfo.MyCommand + "}" + + + + $_.InvocationInfo.Line + + + + $_.InvocationInfo.PositionMessage + + + StackTrace + + + + $_.InvocationInfo.HistoryId + + + + + + + AzureErrorRecords + $_.GetType() -eq [Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord] + + + + + Message + + + StackTrace + + + + $_.Exception.GetType() + + + + "{" + $_.InvocationInfo.MyCommand + "}" + + + + $_.InvocationInfo.Line + + + + $_.InvocationInfo.PositionMessage + + + + $_.InvocationInfo.HistoryId + + + + + + + + Microsoft.Azure.Commands.Profile.CommonModule.PSAzureServiceProfile + + Microsoft.Azure.Commands.Profile.CommonModule.PSAzureServiceProfile + + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + Description + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAccessToken + + Microsoft.Azure.Commands.Profile.Models.PSAccessToken + + + + + + + Token + + + ExpiresOn + + + Type + + + TenantId + + + UserId + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscriptionPolicy + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscriptionPolicy + + + + + Left + + + + Left + + + + Left + + + + + + + + Left + locationPlacementId + + + Left + QuotaId + + + Left + SpendingLimit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Accounts.generated.format.ps1xml b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Accounts.generated.format.ps1xml new file mode 100644 index 000000000000..ca18b6c6cc34 --- /dev/null +++ b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Accounts.generated.format.ps1xml @@ -0,0 +1,446 @@ + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + ResourceManagerUrl + + + Left + ActiveDirectoryAuthority + + + Left + Type + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + Id + + + Left + TenantId + + + Left + State + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + $_.Context.Account.ToString() + + + Left + $_.Context.Subscription.Name + + + Left + $_.Context.Tenant.ToString() + + + Left + $_.Context.Environment.ToString() + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + 40 + Left + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + Account + + + Left + $_.Subscription.Name + + + Left + Environment + + + Left + $_.Tenant.ToString() + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Id + + + Left + $_.Name + + + Left + $_.TenantCategory + + + Left + $_.Domains + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Accounts.types.ps1xml b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Accounts.types.ps1xml new file mode 100644 index 000000000000..1f6599e7f250 --- /dev/null +++ b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Accounts.types.ps1xml @@ -0,0 +1,281 @@ + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + PSStandardMembers + + + SerializationDepth + 10 + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + PSStandardMembers + + + SerializationDepth + 10 + + + + + + + Microsoft.Azure.Commands.Common.Authentication.Core.AuthenticationStoreTokenCache + + + PSStandardMembers + + + SerializationMethod + SpecificProperties + + + PropertySerializationSet + + CacheData + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.Core.ProtectedFileTokenCache + + + PSStandardMembers + + + SerializationMethod + SpecificProperties + + + PropertySerializationSet + + CacheData + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + PSStandardMembers + + + SerializationDepth + 10 + + + + + + Microsoft.Azure.Commands.Profile.Models.AzureContextConverter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Az.Accounts.nuspec b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Az.Accounts.nuspec new file mode 100644 index 000000000000..a13ef862f8ef --- /dev/null +++ b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Az.Accounts.nuspec @@ -0,0 +1,19 @@ + + + + Az.Accounts + 2.2.3 + Microsoft Corporation + Microsoft Corporation + true + https://aka.ms/azps-license + https://github.com/Azure/azure-powershell + Microsoft Azure PowerShell - Accounts credential management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. + +For more information on account credential management, please visit the following: https://docs.microsoft.com/powershell/azure/authenticate-azureps + * Fixed the issue that Http proxy is not respected in Windows PowerShell [#13647] +* Improved debug log of long running operations in generated modules + Microsoft Corporation. All rights reserved. + Azure ResourceManager ARM Accounts Authentication Environment Subscription PSModule PSIncludes_Cmdlet PSCmdlet_Disable-AzDataCollection PSCmdlet_Disable-AzContextAutosave PSCmdlet_Enable-AzDataCollection PSCmdlet_Enable-AzContextAutosave PSCmdlet_Remove-AzEnvironment PSCmdlet_Get-AzEnvironment PSCmdlet_Set-AzEnvironment PSCmdlet_Add-AzEnvironment PSCmdlet_Get-AzSubscription PSCmdlet_Connect-AzAccount PSCmdlet_Get-AzContext PSCmdlet_Set-AzContext PSCmdlet_Import-AzContext PSCmdlet_Save-AzContext PSCmdlet_Get-AzTenant PSCmdlet_Send-Feedback PSCmdlet_Resolve-AzError PSCmdlet_Select-AzContext PSCmdlet_Rename-AzContext PSCmdlet_Remove-AzContext PSCmdlet_Clear-AzContext PSCmdlet_Disconnect-AzAccount PSCmdlet_Get-AzContextAutosaveSetting PSCmdlet_Set-AzDefault PSCmdlet_Get-AzDefault PSCmdlet_Clear-AzDefault PSCmdlet_Register-AzModule PSCmdlet_Enable-AzureRmAlias PSCmdlet_Disable-AzureRmAlias PSCmdlet_Uninstall-AzureRm PSCmdlet_Invoke-AzRestMethod PSCmdlet_Get-AzAccessToken PSCommand_Disable-AzDataCollection PSCommand_Disable-AzContextAutosave PSCommand_Enable-AzDataCollection PSCommand_Enable-AzContextAutosave PSCommand_Remove-AzEnvironment PSCommand_Get-AzEnvironment PSCommand_Set-AzEnvironment PSCommand_Add-AzEnvironment PSCommand_Get-AzSubscription PSCommand_Connect-AzAccount PSCommand_Get-AzContext PSCommand_Set-AzContext PSCommand_Import-AzContext PSCommand_Save-AzContext PSCommand_Get-AzTenant PSCommand_Send-Feedback PSCommand_Resolve-AzError PSCommand_Select-AzContext PSCommand_Rename-AzContext PSCommand_Remove-AzContext PSCommand_Clear-AzContext PSCommand_Disconnect-AzAccount PSCommand_Get-AzContextAutosaveSetting PSCommand_Set-AzDefault PSCommand_Get-AzDefault PSCommand_Clear-AzDefault PSCommand_Register-AzModule PSCommand_Enable-AzureRmAlias PSCommand_Disable-AzureRmAlias PSCommand_Uninstall-AzureRm PSCommand_Invoke-AzRestMethod PSCommand_Get-AzAccessToken PSCommand_Add-AzAccount PSCommand_Login-AzAccount PSCommand_Remove-AzAccount PSCommand_Logout-AzAccount PSCommand_Select-AzSubscription PSCommand_Resolve-Error PSCommand_Save-AzProfile PSCommand_Get-AzDomain PSCommand_Invoke-AzRest + + \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psd1 b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psd1 new file mode 100644 index 000000000000..ccacfd07c692 --- /dev/null +++ b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psd1 @@ -0,0 +1,362 @@ +# +# Module manifest for module 'Az.Accounts' +# +# Generated by: Microsoft Corporation +# +# Generated on: 12/24/2020 +# + +@{ + +# Script module or binary module file associated with this manifest. +RootModule = 'Az.Accounts.psm1' + +# Version number of this module. +ModuleVersion = '2.2.3' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = '17a2feff-488b-47f9-8729-e2cec094624c' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Azure PowerShell - Accounts credential management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. + +For more information on account credential management, please visit the following: https://docs.microsoft.com/powershell/azure/authenticate-azureps' + +# Minimum version of the PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +# CLRVersion = '' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = '' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +RequiredAssemblies = 'Microsoft.Azure.PowerShell.Authentication.Abstractions.dll', + 'Microsoft.Azure.PowerShell.Authentication.dll', + 'Microsoft.Azure.PowerShell.Authenticators.dll', + 'Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll', + 'Microsoft.Azure.PowerShell.Clients.Authorization.dll', + 'Microsoft.Azure.PowerShell.Clients.Compute.dll', + 'Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll', + 'Microsoft.Azure.PowerShell.Clients.Monitor.dll', + 'Microsoft.Azure.PowerShell.Clients.Network.dll', + 'Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll', + 'Microsoft.Azure.PowerShell.Clients.ResourceManager.dll', + 'Microsoft.Azure.PowerShell.Common.dll', + 'Microsoft.Azure.PowerShell.Storage.dll', + 'Microsoft.Azure.PowerShell.Clients.Storage.Management.dll', + 'Microsoft.Azure.PowerShell.Clients.KeyVault.dll', + 'Microsoft.Azure.PowerShell.Clients.Websites.dll', + 'Hyak.Common.dll', 'Microsoft.ApplicationInsights.dll', + 'Microsoft.Azure.Common.dll', 'Microsoft.Rest.ClientRuntime.dll', + 'Microsoft.Rest.ClientRuntime.Azure.dll', + 'Microsoft.WindowsAzure.Storage.dll', + 'Microsoft.WindowsAzure.Storage.DataMovement.dll', + 'Microsoft.Azure.PowerShell.Clients.Aks.dll', + 'Microsoft.Azure.PowerShell.Strategies.dll' + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = 'Accounts.format.ps1xml', 'Accounts.generated.format.ps1xml' + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = @() + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = 'Disable-AzDataCollection', 'Disable-AzContextAutosave', + 'Enable-AzDataCollection', 'Enable-AzContextAutosave', + 'Remove-AzEnvironment', 'Get-AzEnvironment', 'Set-AzEnvironment', + 'Add-AzEnvironment', 'Get-AzSubscription', 'Connect-AzAccount', + 'Get-AzContext', 'Set-AzContext', 'Import-AzContext', 'Save-AzContext', + 'Get-AzTenant', 'Send-Feedback', 'Resolve-AzError', 'Select-AzContext', + 'Rename-AzContext', 'Remove-AzContext', 'Clear-AzContext', + 'Disconnect-AzAccount', 'Get-AzContextAutosaveSetting', + 'Set-AzDefault', 'Get-AzDefault', 'Clear-AzDefault', + 'Register-AzModule', 'Enable-AzureRmAlias', 'Disable-AzureRmAlias', + 'Uninstall-AzureRm', 'Invoke-AzRestMethod', 'Get-AzAccessToken' + +# Variables to export from this module +# VariablesToExport = @() + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = 'Add-AzAccount', 'Login-AzAccount', 'Remove-AzAccount', + 'Logout-AzAccount', 'Select-AzSubscription', 'Resolve-Error', + 'Save-AzProfile', 'Get-AzDomain', 'Invoke-AzRest' + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{ + + PSData = @{ + + # Tags applied to this module. These help with module discovery in online galleries. + Tags = 'Azure','ResourceManager','ARM','Accounts','Authentication','Environment','Subscription' + + # A URL to the license for this module. + LicenseUri = 'https://aka.ms/azps-license' + + # A URL to the main website for this project. + ProjectUri = 'https://github.com/Azure/azure-powershell' + + # A URL to an icon representing this module. + # IconUri = '' + + # ReleaseNotes of this module + ReleaseNotes = '* Fixed the issue that Http proxy is not respected in Windows PowerShell [#13647] +* Improved debug log of long running operations in generated modules' + + # Prerelease string of this module + # Prerelease = '' + + # Flag to indicate whether the module requires explicit user acceptance for install/update/save + # RequireLicenseAcceptance = $false + + # External dependent modules of this module + # ExternalModuleDependencies = @() + + } # End of PSData hashtable + + } # End of PrivateData hashtable + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' + +} + + +# SIG # Begin signature block +# MIIjjgYJKoZIhvcNAQcCoIIjfzCCI3sCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCTwO6OY9CZ9hBt +# sVCPzLCq1tTk36baGgPhZELsEqdHbaCCDYEwggX/MIID56ADAgECAhMzAAABh3IX +# chVZQMcJAAAAAAGHMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjAwMzA0MTgzOTQ3WhcNMjEwMzAzMTgzOTQ3WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDOt8kLc7P3T7MKIhouYHewMFmnq8Ayu7FOhZCQabVwBp2VS4WyB2Qe4TQBT8aB +# znANDEPjHKNdPT8Xz5cNali6XHefS8i/WXtF0vSsP8NEv6mBHuA2p1fw2wB/F0dH +# sJ3GfZ5c0sPJjklsiYqPw59xJ54kM91IOgiO2OUzjNAljPibjCWfH7UzQ1TPHc4d +# weils8GEIrbBRb7IWwiObL12jWT4Yh71NQgvJ9Fn6+UhD9x2uk3dLj84vwt1NuFQ +# itKJxIV0fVsRNR3abQVOLqpDugbr0SzNL6o8xzOHL5OXiGGwg6ekiXA1/2XXY7yV +# Fc39tledDtZjSjNbex1zzwSXAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUhov4ZyO96axkJdMjpzu2zVXOJcsw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU4Mzg1MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAixmy +# S6E6vprWD9KFNIB9G5zyMuIjZAOuUJ1EK/Vlg6Fb3ZHXjjUwATKIcXbFuFC6Wr4K +# NrU4DY/sBVqmab5AC/je3bpUpjtxpEyqUqtPc30wEg/rO9vmKmqKoLPT37svc2NV +# BmGNl+85qO4fV/w7Cx7J0Bbqk19KcRNdjt6eKoTnTPHBHlVHQIHZpMxacbFOAkJr +# qAVkYZdz7ikNXTxV+GRb36tC4ByMNxE2DF7vFdvaiZP0CVZ5ByJ2gAhXMdK9+usx +# zVk913qKde1OAuWdv+rndqkAIm8fUlRnr4saSCg7cIbUwCCf116wUJ7EuJDg0vHe +# yhnCeHnBbyH3RZkHEi2ofmfgnFISJZDdMAeVZGVOh20Jp50XBzqokpPzeZ6zc1/g +# yILNyiVgE+RPkjnUQshd1f1PMgn3tns2Cz7bJiVUaqEO3n9qRFgy5JuLae6UweGf +# AeOo3dgLZxikKzYs3hDMaEtJq8IP71cX7QXe6lnMmXU/Hdfz2p897Zd+kU+vZvKI +# 3cwLfuVQgK2RZ2z+Kc3K3dRPz2rXycK5XCuRZmvGab/WbrZiC7wJQapgBodltMI5 +# GMdFrBg9IeF7/rP4EqVQXeKtevTlZXjpuNhhjuR+2DMt/dWufjXpiW91bo3aH6Ea +# jOALXmoxgltCp1K7hrS6gmsvj94cLRf50QQ4U8Qwggd6MIIFYqADAgECAgphDpDS +# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0 +# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla +# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS +# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT +# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG +# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S +# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz +# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7 +# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u +# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33 +# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl +# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP +# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB +# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF +# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM +# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ +# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud +# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO +# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0 +# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p +# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB +# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw +# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA +# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY +# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj +# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd +# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ +# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf +# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ +# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j +# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B +# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96 +# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7 +# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I +# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVYzCCFV8CAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAYdyF3IVWUDHCQAAAAABhzAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgiAwK5kNM +# cm/r7eeIjqRJA5oO508+3XhQQkxLvni75A4wQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQDB/48KOxRiNEs6y4SGWJiNKjupO4Z1OuzqUElNihb8 +# QDz2x6Ym6/XlVhZzvLjyCqtXbv80xxKGjKF5xygynzbkEegd0fpeEPaQn5e0eaWw +# B6Spob3FMJxPv1rNYFa+bm2p77is05ylF8NcK7ubqPt1DRC3OHW3uyevqQhDXBAl +# xunILpudxwpUycuaxZ0l1NbsRxMNr8nZZ+bAu2tlno2ylqejSWuYBH6ECYMldF57 +# uQJOPGOo7+EtBcnLJfi4PKiWC4GjGypjQyzfYw7UJ/EK8gn69xDU1ixTveA9a54W +# bXCYTpAcOe6EMpg3YM1Ou+gqmcjSURm3SC7bTFCqUfowoYIS7TCCEukGCisGAQQB +# gjcDAwExghLZMIIS1QYJKoZIhvcNAQcCoIISxjCCEsICAQMxDzANBglghkgBZQME +# AgEFADCCAVUGCyqGSIb3DQEJEAEEoIIBRASCAUAwggE8AgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIDN1M/nKQpU074BJ1wTtn6lkpHIR8v9Se3n6F6+6 +# XN9VAgZf25nFRwYYEzIwMjAxMjI0MDk1NDUyLjQ3NVowBIACAfSggdSkgdEwgc4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1p +# Y3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMg +# VFNTIEVTTjpGNzdGLUUzNTYtNUJBRTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt +# U3RhbXAgU2VydmljZaCCDkAwggT1MIID3aADAgECAhMzAAABKugXlviGp++jAAAA +# AAEqMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MB4XDTE5MTIxOTAxMTUwMloXDTIxMDMxNzAxMTUwMlowgc4xCzAJBgNVBAYTAlVT +# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK +# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVy +# YXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpGNzdG +# LUUzNTYtNUJBRTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj +# ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ/flYGkhdJtxSsHBu9l +# mXF/UXxPF7L45nEhmtd01KDosWbY8y54BN7+k9DMvzqToP39v8/Z+NtEzKj8Bf5E +# QoG1/pJfpzCJe80HZqyqMo0oQ9EugVY6YNVNa2T1u51d96q1hFmu1dgxt8uD2g7I +# pBQdhS2tpc3j3HEzKvV/vwEr7/BcTuwqUHqrrBgHc971epVR4o5bNKsjikawmMw9 +# D/tyrTciy3F9Gq9pEgk8EqJfOdAabkanuAWTjlmBhZtRiO9W1qFpwnu9G5qVvdNK +# RKxQdtxMC04pWGfnxzDac7+jIql532IEC5QSnvY84szEpxw31QW/LafSiDmAtYWH +# pm8CAwEAAaOCARswggEXMB0GA1UdDgQWBBRw9MUtdCs/rhN2y9EkE6ZI9O8TaTAf +# BgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBH +# hkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNU +# aW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF +# BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0 +# YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG +# AQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQCKwDT0CnHVo46OWyUbrPIj8QIcf+PT +# jBVYpKg1K2D15Z6xEuvmf+is6N8gj9f1nkFIALvh+iGkx8GgGa/oA9IhXNEFYPNF +# aHwHan/UEw1P6Tjdaqy3cvLC8f8zE1CR1LhXNofq6xfoT9HLGFSg9skPLM1TQ+RA +# QX9MigEm8FFlhhsQ1iGB1399x8d92h9KspqGDnO96Z9Aj7ObDtdU6RoZrsZkiRQN +# nXmnX1I+RuwtLu8MN8XhJLSl5wqqHM3rqaaMvSAISVtKySpzJC5Zh+5kJlqFdSiI +# HW8Q+8R6EWG8ILb9Pf+w/PydyK3ZTkVXUpFA+JhWjcyzphVGw9ffj0YKMIIGcTCC +# BFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv +# b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcN +# MjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv +# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 +# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCASIw +# DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkdDbx3EYo6IOz8E5f1+n9plGt0 +# VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEwWbEw +# RA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeGMoQe +# dGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKx +# Xf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOWRH7v0Ev9buWayrGo8noqCjHw2k4G +# kbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEA +# AaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ80N7 +# fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC +# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX +# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v +# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI +# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYDVR0g +# AQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93 +# d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYB +# BQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUA +# bQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOh +# IW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/15/B4vceoniXj+bzta1RXCCtRgkQS +# +7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlK +# kVIArzgPF/UveYFl2am1a+THzvbKegBvSzBEJCI8z+0DpZaPWSm8tv0E4XCfMkon +# /VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/3cVKC5Em4jnsGUpxY517IW3DnKOi +# PPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs9/S/ +# fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5HmoDF0M2n0O99g/DhO3EJ3110mCII +# YdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL2IK0 +# cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI5pgt6o3gMy4SKfXAL1QnIffIrE7a +# KLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQ +# cdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc1bN+ +# NR4Iuto229Nfj950iEkSoYICzjCCAjcCAQEwgfyhgdSkgdEwgc4xCzAJBgNVBAYT +# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD +# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBP +# cGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpG +# NzdGLUUzNTYtNUJBRTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy +# dmljZaIjCgEBMAcGBSsOAwIaAxUA6rLmrKHyIMP76ePl321xKUJ3YX+ggYMwgYCk +# fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD +# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIF +# AOOOqdIwIhgPMjAyMDEyMjQwOTQ2NThaGA8yMDIwMTIyNTA5NDY1OFowczA5Bgor +# BgEEAYRZCgQBMSswKTAKAgUA446p0gIBADAGAgEAAgEEMAcCAQACAhGUMAoCBQDj +# j/tSAgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMH +# oSChCjAIAgEAAgMBhqAwDQYJKoZIhvcNAQEFBQADgYEApKPWkjqj3O9lNPTCfUHy +# +5IF5oXSncTgxGtMN/q/02rTsvfI4/gsRavPRvwenX9IRZDqlZ5ccJZEd2cVUITi +# tvX0UPpK7gb1svCNSIroX4RIVCr+Vgf9Vnwp5zZYD/enTrsA1/+hydcgoAu4AJKa +# vtg9d1hJIw/iTb2nTTOjw1IxggMNMIIDCQIBATCBkzB8MQswCQYDVQQGEwJVUzET +# MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV +# TWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1T +# dGFtcCBQQ0EgMjAxMAITMwAAASroF5b4hqfvowAAAAABKjANBglghkgBZQMEAgEF +# AKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEi +# BCBysfNgmLIcyYp3CTmX0HgoKWxBGMTZwN/7i16ECzCObjCB+gYLKoZIhvcNAQkQ +# Ai8xgeowgecwgeQwgb0EIEOYNYRa9zp+Gzm3haijlD4UwUJxoiBXjJQ/gKm4GYuZ +# MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO +# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEm +# MCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAEq6BeW +# +Ian76MAAAAAASowIgQgclal1LwDfBg6QBrQY8Rnd9RhiDfXVivXo/WUOazIGLYw +# DQYJKoZIhvcNAQELBQAEggEAOgYVxMhZQBKvosx8UzY9WYaa8WsJKFnWK8mgZDGF +# 5vqqPQE0m9M5ZjtNTpmYx9tXFJxSr0Dvyg58BV+/VFZl6/8WhyGi4FVu3bcc3jo/ +# HoJwIW/jdkC2GC0D5XWEXDhXSWy5vc9BuunxCB+8P+/J0UhjrKEs2ASHQUKzV3e4 +# Ao8VdcQ9pfSSrReO5Vm7nD936C3PCsS4owBXIwtSoPJbDFYAV05D98rV8MY7UOiB +# dbRmaa/QOm9We4PvoxHQj9znKBHk+Bmx4jQxBcEQRAWBxr3qdO/MdYNIUo2duc/v +# tgzScCpo8ooh3WeHDFKh223KA8AToZmCrR3iNW8r5ug5ew== +# SIG # End signature block diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psm1 b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psm1 new file mode 100644 index 000000000000..bb5fde1c75eb --- /dev/null +++ b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psm1 @@ -0,0 +1,339 @@ +# +# Script module for module 'Az.Accounts' that is executed when 'Az.Accounts' is imported in a PowerShell session. +# +# Generated by: Microsoft Corporation +# +# Generated on: 12/24/2020 09:11:01 +# + +$PSDefaultParameterValues.Clear() +Set-StrictMode -Version Latest + +function Test-DotNet +{ + try + { + if ((Get-PSDrive 'HKLM' -ErrorAction Ignore) -and (-not (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' -ErrorAction Stop | Get-ItemPropertyValue -ErrorAction Stop -Name Release | Where-Object { $_ -ge 461808 }))) + { + throw ".NET Framework versions lower than 4.7.2 are not supported in Az. Please upgrade to .NET Framework 4.7.2 or higher." + } + } + catch [System.Management.Automation.DriveNotFoundException] + { + Write-Verbose ".NET Framework version check failed." + } +} + +if ($true -and ($PSEdition -eq 'Desktop')) +{ + if ($PSVersionTable.PSVersion -lt [Version]'5.1') + { + throw "PowerShell versions lower than 5.1 are not supported in Az. Please upgrade to PowerShell 5.1 or higher." + } + + Test-DotNet +} + +if ($true -and ($PSEdition -eq 'Core')) +{ + if ($PSVersionTable.PSVersion -lt [Version]'6.2.4') + { + throw "Current Az version doesn't support PowerShell Core versions lower than 6.2.4. Please upgrade to PowerShell Core 6.2.4 or higher." + } +} + +if (Test-Path -Path "$PSScriptRoot\StartupScripts" -ErrorAction Ignore) +{ + Get-ChildItem "$PSScriptRoot\StartupScripts" -ErrorAction Stop | ForEach-Object { + . $_.FullName + } +} + +if (Get-Module AzureRM.profile -ErrorAction Ignore) +{ + Write-Warning ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + + "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") + throw ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + + "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") +} + +$preloadPath = (Join-Path $PSScriptRoot -ChildPath "PreloadAssemblies") +if($PSEdition -eq 'Desktop' -and (Test-Path $preloadPath -ErrorAction Ignore)) +{ + try + { + Get-ChildItem -ErrorAction Stop -Path $preloadPath -Filter "*.dll" | ForEach-Object { + try + { + Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null + } + catch { + Write-Verbose $_ + } + } + } + catch {} +} + +$netCorePath = (Join-Path $PSScriptRoot -ChildPath "NetCoreAssemblies") +if($PSEdition -eq 'Core' -and (Test-Path $netCorePath -ErrorAction Ignore)) +{ + try + { + $loadedAssemblies = ([System.AppDomain]::CurrentDomain.GetAssemblies() | ForEach-Object {New-Object -TypeName System.Reflection.AssemblyName -ArgumentList $_.FullName} ) + Get-ChildItem -ErrorAction Stop -Path $netCorePath -Filter "*.dll" | ForEach-Object { + $assemblyName = ([System.Reflection.AssemblyName]::GetAssemblyName($_.FullName)) + $matches = ($loadedAssemblies | Where-Object {$_.Name -eq $assemblyName.Name}) + if (-not $matches) + { + try + { + Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null + } + catch { + Write-Verbose $_ + } + } + } + } + catch {} +} + + +Import-Module (Join-Path -Path $PSScriptRoot -ChildPath Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll) + + +if (Test-Path -Path "$PSScriptRoot\PostImportScripts" -ErrorAction Ignore) +{ + Get-ChildItem "$PSScriptRoot\PostImportScripts" -ErrorAction Stop | ForEach-Object { + . $_.FullName + } +} + +$FilteredCommands = @() + +if ($Env:ACC_CLOUD -eq $null) +{ + $FilteredCommands | ForEach-Object { + + $existingDefault = $false + foreach ($key in $global:PSDefaultParameterValues.Keys) + { + if ($_ -like "$key") + { + $existingDefault = $true + } + } + + if (!$existingDefault) + { + $global:PSDefaultParameterValues.Add($_, + { + if ((Get-Command Get-AzContext -ErrorAction Ignore) -eq $null) + { + $context = Get-AzureRmContext + } + else + { + $context = Get-AzContext + } + if (($context -ne $null) -and $context.ExtendedProperties.ContainsKey("Default Resource Group")) { + $context.ExtendedProperties["Default Resource Group"] + } + }) + } + } +} + +# SIG # Begin signature block +# MIIjkgYJKoZIhvcNAQcCoIIjgzCCI38CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBd2Z9mhlN9JBGA +# KEvyZ8IlACQaul4HtGNYZ8A+FQ6kB6CCDYEwggX/MIID56ADAgECAhMzAAABh3IX +# chVZQMcJAAAAAAGHMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjAwMzA0MTgzOTQ3WhcNMjEwMzAzMTgzOTQ3WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDOt8kLc7P3T7MKIhouYHewMFmnq8Ayu7FOhZCQabVwBp2VS4WyB2Qe4TQBT8aB +# znANDEPjHKNdPT8Xz5cNali6XHefS8i/WXtF0vSsP8NEv6mBHuA2p1fw2wB/F0dH +# sJ3GfZ5c0sPJjklsiYqPw59xJ54kM91IOgiO2OUzjNAljPibjCWfH7UzQ1TPHc4d +# weils8GEIrbBRb7IWwiObL12jWT4Yh71NQgvJ9Fn6+UhD9x2uk3dLj84vwt1NuFQ +# itKJxIV0fVsRNR3abQVOLqpDugbr0SzNL6o8xzOHL5OXiGGwg6ekiXA1/2XXY7yV +# Fc39tledDtZjSjNbex1zzwSXAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUhov4ZyO96axkJdMjpzu2zVXOJcsw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU4Mzg1MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAixmy +# S6E6vprWD9KFNIB9G5zyMuIjZAOuUJ1EK/Vlg6Fb3ZHXjjUwATKIcXbFuFC6Wr4K +# NrU4DY/sBVqmab5AC/je3bpUpjtxpEyqUqtPc30wEg/rO9vmKmqKoLPT37svc2NV +# BmGNl+85qO4fV/w7Cx7J0Bbqk19KcRNdjt6eKoTnTPHBHlVHQIHZpMxacbFOAkJr +# qAVkYZdz7ikNXTxV+GRb36tC4ByMNxE2DF7vFdvaiZP0CVZ5ByJ2gAhXMdK9+usx +# zVk913qKde1OAuWdv+rndqkAIm8fUlRnr4saSCg7cIbUwCCf116wUJ7EuJDg0vHe +# yhnCeHnBbyH3RZkHEi2ofmfgnFISJZDdMAeVZGVOh20Jp50XBzqokpPzeZ6zc1/g +# yILNyiVgE+RPkjnUQshd1f1PMgn3tns2Cz7bJiVUaqEO3n9qRFgy5JuLae6UweGf +# AeOo3dgLZxikKzYs3hDMaEtJq8IP71cX7QXe6lnMmXU/Hdfz2p897Zd+kU+vZvKI +# 3cwLfuVQgK2RZ2z+Kc3K3dRPz2rXycK5XCuRZmvGab/WbrZiC7wJQapgBodltMI5 +# GMdFrBg9IeF7/rP4EqVQXeKtevTlZXjpuNhhjuR+2DMt/dWufjXpiW91bo3aH6Ea +# jOALXmoxgltCp1K7hrS6gmsvj94cLRf50QQ4U8Qwggd6MIIFYqADAgECAgphDpDS +# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0 +# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla +# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS +# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT +# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG +# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S +# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz +# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7 +# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u +# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33 +# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl +# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP +# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB +# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF +# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM +# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ +# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud +# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO +# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0 +# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p +# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB +# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw +# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA +# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY +# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj +# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd +# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ +# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf +# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ +# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j +# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B +# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96 +# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7 +# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I +# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVZzCCFWMCAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAYdyF3IVWUDHCQAAAAABhzAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgUOmH5mL4 +# yjhTPdO8UHq8XMO/+VLsyYWYIJ/RT1XbkkkwQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQBSAtHcsNdTD7P7unHEaac66zKW5HDgs9kQNlmx+CTk +# hmfADe9vY3K4s/N9HTv0wKjAsewt+t72P8lY6YR1JHkB3542pmCxZHf49Pzl1BMd +# 7SFQuO7urwhMsBJyuF/ZWEuPjHklKbGFUkXk3naEmI0tUr7VcBoV19AQkUXIGTns +# wnwayT3je0meI6ChBs13++mGyVIzrYnTFUl7aprvBy6Vd36G3l3RYQ6jIXIKlWWF +# jAilwLxDFW7wqTudigI7Fss7VTQw+ICyjfsbtQvb2SDIbt8bqoYyysu0Hrn0Bu24 +# oWAj0B2a+P58uJ5uBZtWPtqZA8cB1reyenKQU7PQK79OoYIS8TCCEu0GCisGAQQB +# gjcDAwExghLdMIIS2QYJKoZIhvcNAQcCoIISyjCCEsYCAQMxDzANBglghkgBZQME +# AgEFADCCAVUGCyqGSIb3DQEJEAEEoIIBRASCAUAwggE8AgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIO3zp5aPKMXZRlXnju58Vbbq42teCqYlPkrv0nZt +# 5w1TAgZf24vUx1UYEzIwMjAxMjI0MDkzNjU1Ljc1N1owBIACAfSggdSkgdEwgc4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1p +# Y3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMg +# VFNTIEVTTjpDNEJELUUzN0YtNUZGQzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt +# U3RhbXAgU2VydmljZaCCDkQwggT1MIID3aADAgECAhMzAAABIziw5K3YWpCdAAAA +# AAEjMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MB4XDTE5MTIxOTAxMTQ1NloXDTIxMDMxNzAxMTQ1Nlowgc4xCzAJBgNVBAYTAlVT +# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK +# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVy +# YXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpDNEJE +# LUUzN0YtNUZGQzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj +# ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ280MmwZKXcAS7x2ZvA +# 4TOOCzw+63Xs9ULGWtdZDN3Vl+aGQEsMwErIkgzQi0fTO0sOD9N3hO1HaTWHoS80 +# N/Qb6oLR2WCZkv/VM4WFnThOv3yA5zSt+vuKNwrjEHFC0jlMDCJqaU7St6WJbl/k +# AP5sgM0qtpEEQhxtVaf8IoV5lq8vgMJNr30O4rqLYEi/YZWQZYwQHAiVMunCYpJi +# ccnNONRRdg2D3Tyu22eEJwPQP6DkeEioMy9ehMmBrkjADVOgQV+T4mir+hAJeINy +# sps6wgRO5qjuV5+jvczNQa1Wm7jxsqBv04GClIp5NHvrXQmZ9mpZdj3rjxFuZbKj +# d3ECAwEAAaOCARswggEXMB0GA1UdDgQWBBSB1GwUgNONG/kRwrBo3hkV+AyeHjAf +# BgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBH +# hkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNU +# aW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF +# BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0 +# YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG +# AQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQBb5QG3qlfoW6r1V4lT+kO8LUzF32S3 +# fUfgn/S1QQBPzORs/6ujj09ytHWNDfOewwkSya1f8S9e+BbnXknH5l3R6nS2BkRT +# ANtTmXxvMLTCyveYe/JQIfos+Z3iJ0b1qHDSnEj6Qmdf1MymrPAk5jxhxhiiXlwI +# LUjvH56y7rLHxK0wnsH12EO9MnkaSNXJNCmSmfgUEkDNzu53C39l6XNRAPauz2/W +# slIUZcX3NDCMgv5hZi2nhd99HxyaJJscn1f8hZXA++f1HNbq8bdkh3OYgRnNr7Qd +# nO+Guvtu3dyGqYdQMMGPnAt4L7Ew9ykjy0Uoz64/r0SbQIRYty5eM9M3MIIGcTCC +# BFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv +# b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcN +# MjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv +# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 +# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCASIw +# DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkdDbx3EYo6IOz8E5f1+n9plGt0 +# VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEwWbEw +# RA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeGMoQe +# dGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKx +# Xf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOWRH7v0Ev9buWayrGo8noqCjHw2k4G +# kbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEA +# AaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ80N7 +# fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC +# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX +# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v +# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI +# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYDVR0g +# AQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93 +# d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYB +# BQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUA +# bQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOh +# IW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/15/B4vceoniXj+bzta1RXCCtRgkQS +# +7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlK +# kVIArzgPF/UveYFl2am1a+THzvbKegBvSzBEJCI8z+0DpZaPWSm8tv0E4XCfMkon +# /VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/3cVKC5Em4jnsGUpxY517IW3DnKOi +# PPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs9/S/ +# fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5HmoDF0M2n0O99g/DhO3EJ3110mCII +# YdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL2IK0 +# cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI5pgt6o3gMy4SKfXAL1QnIffIrE7a +# KLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQ +# cdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc1bN+ +# NR4Iuto229Nfj950iEkSoYIC0jCCAjsCAQEwgfyhgdSkgdEwgc4xCzAJBgNVBAYT +# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD +# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBP +# cGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpD +# NEJELUUzN0YtNUZGQzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy +# dmljZaIjCgEBMAcGBSsOAwIaAxUAuhdmjeDinhfC7gw1KBCeM/v7V4GggYMwgYCk +# fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD +# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIF +# AOOOm8cwIhgPMjAyMDEyMjQwODQ3MDNaGA8yMDIwMTIyNTA4NDcwM1owdzA9Bgor +# BgEEAYRZCgQBMS8wLTAKAgUA446bxwIBADAKAgEAAgIVsgIB/zAHAgEAAgISPjAK +# AgUA44/tRwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB +# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBAFvFcsonpxiYd8j0 +# IvBE7oJr3sQv7rrSSFZAmUOzj8SSFDiNIE6HKmz6s7NUn+76aLwz+4YSdVzh8k5N +# uP9SG6om7DpsNnXkqk8V+UbLQqBlr2P5VpjCrj3CIisPBRX6TOaS6Vu/Vt52RMkZ +# zyJ+IcbaqRwQta25/w+22dNOlZ+iMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAEjOLDkrdhakJ0AAAAAASMwDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgwKXXJiigh0A3RXQZZmqHVO1XUytVy0679ZOU3RqryccwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCARmjODP/tEzMQNo6OsxKQADL8pwKJkM5YnXKrq +# +xWBszCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# Iziw5K3YWpCdAAAAAAEjMCIEIEFder3roTqe9YoUc2Tgbwiu+Bhq6VhK0jhWWMSz +# zaB9MA0GCSqGSIb3DQEBCwUABIIBAJqIHpRyvt+gthojL/3XkvnHNosNewDaGCu3 +# S6VyJOkkdF7KdjChuvdZ2daDiQiA4homgXApYO5WzgFxnd4umk4ZpvAfTErqgAjs +# mrOaHaVtwowNB0kljciBMv7FqJs5B3ukrUQ4hs0rcxXecvd6Kytfqo/Y9MxrLTI7 +# ZDCGJkoaqGnRiWOk2ELFbJD8Qdz58bPqUld2gnCT2gfheDUTHmXioWvig8LryDzn +# N13otMpDGmIOaX91I3b1GF5h82aiGnJcUlkz5JdEHxGEG+Yydy9EFx8NLDw3jo2z +# WHU0LN1SqFMZvQgc8VgofhJI6M9gmM0kY4kzHCJ/6xtwUiUxRtY= +# SIG # End signature block diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Hyak.Common.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Hyak.Common.dll new file mode 100644 index 0000000000000000000000000000000000000000..18a53248894f2c6159ca11001544daa915289b5b GIT binary patch literal 63880 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 WEh9E(pL;jZjM1dJ8d+Cj*na@ktwkIF literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.ApplicationInsights.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.ApplicationInsights.dll new file mode 100644 index 0000000000000000000000000000000000000000..a176a44730866ec4548d8b0ae0054671bf2a90e4 GIT binary patch literal 179960 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 JDbRl&YBu7JY~mLWG1polhd`| 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 HlW_kJG8x>{ literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.Common.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.Common.dll new file mode 100644 index 0000000000000000000000000000000000000000..1c9d8e2a0ef5888c365e9ef031925877445675ab GIT binary patch literal 35720 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 Jf&TB3{{>qHNUQ(= literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll new file mode 100644 index 0000000000000000000000000000000000000000..d1c22069798146202806bb6bba9d3b1c95c16255 GIT binary patch literal 108424 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

p_B0=s!a3tOr}yG!hbe>*G1rbYS#v7 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 U8C>|S)m??AXj%XO000000O!v-7XSbN literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.ResourceManager.deps.json b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.ResourceManager.deps.json new file mode 100644 index 000000000000..b2279c96a9e5 --- /dev/null +++ b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.ResourceManager.deps.json @@ -0,0 +1,2383 @@ +{ + "runtimeTarget": { + "name": ".NETStandard,Version=v2.0/", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETStandard,Version=v2.0": {}, + ".NETStandard,Version=v2.0/": { + "Microsoft.Azure.PowerShell.Authentication.ResourceManager/1.0.0": { + "dependencies": { + "Azure.Core": "1.7.0", + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.4.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication": "1.0.0", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Aks": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Authorization": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Compute": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.KeyVault": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Monitor": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Network": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.PolicyInsights": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Storage.Management": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Websites": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Storage": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Strategies": "1.3.29-preview", + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "NETStandard.Library": "2.0.3", + "Newtonsoft.Json": "10.0.3", + "PowerShellStandard.Library": "5.1.0" + }, + "runtime": { + "Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll": {} + } + }, + "Azure.Core/1.7.0": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.0.0", + "System.Buffers": "4.5.0", + "System.Diagnostics.DiagnosticSource": "4.6.0", + "System.Memory": "4.5.3", + "System.Numerics.Vectors": "4.5.0", + "System.Text.Json": "4.6.0", + "System.Threading.Tasks.Extensions": "4.5.2" + }, + "runtime": { + "lib/netstandard2.0/Azure.Core.dll": { + "assemblyVersion": "1.7.0.0", + "fileVersion": "1.700.20.61402" + } + } + }, + "Azure.Identity/1.4.0-beta.1": { + "dependencies": { + "Azure.Core": "1.7.0", + "Microsoft.Identity.Client": "4.21.0", + "Microsoft.Identity.Client.Extensions.Msal": "2.16.2", + "System.Memory": "4.5.3", + "System.Security.Cryptography.ProtectedData": "4.5.0", + "System.Text.Json": "4.6.0", + "System.Threading.Tasks.Extensions": "4.5.2" + }, + "runtime": { + "lib/netstandard2.0/Azure.Identity.dll": { + "assemblyVersion": "1.4.0.0", + "fileVersion": "1.400.20.51503" + } + } + }, + "Hyak.Common/1.2.2": { + "dependencies": { + "NETStandard.Library": "2.0.3", + "Newtonsoft.Json": "10.0.3", + "System.Reflection": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.4/Hyak.Common.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.2.2.0" + } + } + }, + "Microsoft.ApplicationInsights/2.4.0": { + "dependencies": { + "NETStandard.Library": "2.0.3", + "System.Diagnostics.DiagnosticSource": "4.6.0", + "System.Diagnostics.StackTrace": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/Microsoft.ApplicationInsights.dll": { + "assemblyVersion": "2.4.0.0", + "fileVersion": "2.4.0.32153" + } + } + }, + "Microsoft.Azure.Common/2.2.1": { + "dependencies": { + "Hyak.Common": "1.2.2", + "NETStandard.Library": "2.0.3" + }, + "runtime": { + "lib/netstandard1.4/Microsoft.Azure.Common.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.2.1.0" + } + } + }, + "Microsoft.Azure.PowerShell.Authentication.Abstractions/1.3.29-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Aks/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Aks.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Authorization/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Authorization.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Compute/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Compute.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac/1.3.29-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.29-preview", + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.KeyVault/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3", + "System.Collections.NonGeneric": "4.3.0", + "System.Collections.Specialized": "4.3.0", + "System.Reflection": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.KeyVault.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Monitor/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3", + "System.Collections.Specialized": "4.3.0", + "System.Reflection": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Monitor.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Network/1.3.29-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.29-preview", + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Network.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.PolicyInsights/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.ResourceManager/1.3.29-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.29-preview", + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Storage.Management/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "System.Collections.NonGeneric": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Websites/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3", + "System.Collections.Specialized": "4.3.0", + "System.Reflection": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Websites.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Common/1.3.29-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.4.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.29-preview", + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Common.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Storage/1.3.29-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.29-preview", + "Microsoft.Rest.ClientRuntime": "2.3.20" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Storage.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Strategies/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Strategies.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/1.0.0": { + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.2" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "4.700.19.46214" + } + } + }, + "Microsoft.CSharp/4.5.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.CSharp.dll": { + "assemblyVersion": "4.0.4.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "Microsoft.Identity.Client/4.21.0": { + "dependencies": { + "Microsoft.CSharp": "4.5.0", + "NETStandard.Library": "2.0.3", + "System.ComponentModel.TypeConverter": "4.3.0", + "System.Diagnostics.Process": "4.3.0", + "System.Dynamic.Runtime": "4.3.0", + "System.Private.Uri": "4.3.2", + "System.Runtime.Serialization.Formatters": "4.3.0", + "System.Runtime.Serialization.Json": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XDocument": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/Microsoft.Identity.Client.dll": { + "assemblyVersion": "4.21.0.0", + "fileVersion": "4.21.0.0" + } + } + }, + "Microsoft.Identity.Client.Extensions.Msal/2.16.2": { + "dependencies": { + "Microsoft.Identity.Client": "4.21.0", + "System.Security.Cryptography.ProtectedData": "4.5.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.dll": { + "assemblyVersion": "2.16.2.0", + "fileVersion": "2.16.2.0" + } + } + }, + "Microsoft.NETCore.Platforms/1.1.1": {}, + "Microsoft.NETCore.Targets/1.1.3": {}, + "Microsoft.Rest.ClientRuntime/2.3.20": { + "dependencies": { + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Rest.ClientRuntime.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.3.20.0" + } + } + }, + "Microsoft.Rest.ClientRuntime.Azure/3.3.19": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Rest.ClientRuntime.Azure.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "3.3.18.0" + } + } + }, + "Microsoft.Win32.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "Microsoft.Win32.Registry/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + } + }, + "NETStandard.Library/2.0.3": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1" + } + }, + "Newtonsoft.Json/10.0.3": { + "dependencies": { + "Microsoft.CSharp": "4.5.0", + "NETStandard.Library": "2.0.3", + "System.ComponentModel.TypeConverter": "4.3.0", + "System.Runtime.Serialization.Formatters": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/Newtonsoft.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.3.21018" + } + } + }, + "PowerShellStandard.Library/5.1.0": {}, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.native.System/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "runtime.native.System.IO.Compression/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "runtime.native.System.Net.Http/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "dependencies": { + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" + } + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "System.Buffers/4.5.0": { + "runtime": { + "lib/netstandard2.0/System.Buffers.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.Collections/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Collections.Concurrent/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Collections.Concurrent.dll": { + "assemblyVersion": "4.0.13.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Collections.Immutable/1.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.0/System.Collections.Immutable.dll": { + "assemblyVersion": "1.2.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Collections.NonGeneric/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Collections.NonGeneric.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Collections.Specialized/4.3.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Collections.Specialized.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.ComponentModel/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.ComponentModel.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.ComponentModel.Primitives/4.3.0": { + "dependencies": { + "System.ComponentModel": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.0/System.ComponentModel.Primitives.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.ComponentModel.TypeConverter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.NonGeneric": "4.3.0", + "System.Collections.Specialized": "4.3.0", + "System.ComponentModel": "4.3.0", + "System.ComponentModel.Primitives": "4.3.0", + "System.Globalization": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.5/System.ComponentModel.TypeConverter.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Diagnostics.Debug/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.DiagnosticSource/4.6.0": { + "dependencies": { + "System.Memory": "4.5.3" + }, + "runtime": { + "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "4.0.4.0", + "fileVersion": "4.700.19.46214" + } + } + }, + "System.Diagnostics.Process/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.Win32.Primitives": "4.3.0", + "Microsoft.Win32.Registry": "4.3.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Thread": "4.3.0", + "System.Threading.ThreadPool": "4.3.0", + "runtime.native.System": "4.3.0" + } + }, + "System.Diagnostics.StackTrace/4.3.0": { + "dependencies": { + "System.IO.FileSystem": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Metadata": "1.4.1", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Diagnostics.StackTrace.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Diagnostics.Tools/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.Tracing/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Dynamic.Runtime/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Dynamic.Runtime.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Globalization/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Calendars/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Globalization": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + } + }, + "System.IO/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.Compression/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Buffers": "4.5.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.IO.Compression": "4.3.0" + } + }, + "System.IO.FileSystem/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.IO": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Linq/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Linq.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Linq.Expressions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Linq.Expressions.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Memory/4.5.3": { + "dependencies": { + "System.Buffers": "4.5.0", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.6.0" + }, + "runtime": { + "lib/netstandard2.0/System.Memory.dll": { + "assemblyVersion": "4.0.1.1", + "fileVersion": "4.6.27617.2" + } + } + }, + "System.Numerics.Vectors/4.5.0": { + "runtime": { + "lib/netstandard2.0/System.Numerics.Vectors.dll": { + "assemblyVersion": "4.1.4.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.ObjectModel/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.ObjectModel.dll": { + "assemblyVersion": "4.0.13.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Private.DataContractSerialization/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XDocument": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Private.DataContractSerialization.dll": { + "assemblyVersion": "4.1.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Private.Uri/4.3.2": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "System.Reflection/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.IO": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Reflection.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Metadata/1.4.1": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.Immutable": "1.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.IO": "4.3.0", + "System.IO.Compression": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.1/System.Reflection.Metadata.dll": { + "assemblyVersion": "1.4.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Reflection.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.TypeExtensions/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.5/System.Reflection.TypeExtensions.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Resources.ResourceManager/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "System.Runtime.CompilerServices.Unsafe/4.6.0": { + "runtime": { + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "4.0.5.0", + "fileVersion": "4.700.19.46214" + } + } + }, + "System.Runtime.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.Handles/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.InteropServices/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Runtime.Numerics/4.3.0": { + "dependencies": { + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Runtime.Numerics.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Runtime.Serialization.Formatters/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0" + }, + "runtime": { + "lib/netstandard1.4/System.Runtime.Serialization.Formatters.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Runtime.Serialization.Json/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Private.DataContractSerialization": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Runtime.Serialization.Json.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Runtime.Serialization.Primitives/4.3.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Runtime.Serialization.Primitives.dll": { + "assemblyVersion": "4.1.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.Apple": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.Cng/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Security.Cryptography.Csp/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "1.0.24212.1" + } + } + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Security.Cryptography.ProtectedData/4.5.0": { + "dependencies": { + "System.Memory": "4.5.3" + }, + "runtime": { + "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Cng": "4.3.0", + "System.Security.Cryptography.Csp": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.SecureString/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Text.Encoding/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Text.Encoding.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Text.Encodings.Web/4.6.0": { + "dependencies": { + "System.Memory": "4.5.3" + }, + "runtime": { + "lib/netstandard2.0/System.Text.Encodings.Web.dll": { + "assemblyVersion": "4.0.4.0", + "fileVersion": "4.700.19.46214" + } + } + }, + "System.Text.Json/4.6.0": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.0.0", + "System.Buffers": "4.5.0", + "System.Memory": "4.5.3", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.6.0", + "System.Text.Encodings.Web": "4.6.0", + "System.Threading.Tasks.Extensions": "4.5.2" + }, + "runtime": { + "lib/netstandard2.0/System.Text.Json.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.700.19.46214" + } + } + }, + "System.Text.RegularExpressions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Text.RegularExpressions.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Threading/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Threading.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Threading.Tasks/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Threading.Tasks.Extensions/4.5.2": { + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.6.0" + }, + "runtime": { + "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll": { + "assemblyVersion": "4.2.0.0", + "fileVersion": "4.6.27129.4" + } + } + }, + "System.Threading.Thread/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Threading.Thread.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Threading.ThreadPool/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Threading.ThreadPool.dll": { + "assemblyVersion": "4.0.11.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.ReaderWriter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Tasks.Extensions": "4.5.2" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.ReaderWriter.dll": { + "assemblyVersion": "4.1.0.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.XDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XDocument.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.XmlDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XmlDocument.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.XmlSerializer/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XmlSerializer.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "Microsoft.Azure.PowerShell.Authentication/1.0.0": { + "dependencies": { + "Azure.Core": "1.7.0", + "Azure.Identity": "1.4.0-beta.1", + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.4.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Aks": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Authorization": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Compute": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.KeyVault": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Monitor": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Network": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.PolicyInsights": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Storage.Management": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Websites": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Storage": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Strategies": "1.3.29-preview", + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "Microsoft.Azure.PowerShell.Authentication.dll": {} + } + } + } + }, + "libraries": { + "Microsoft.Azure.PowerShell.Authentication.ResourceManager/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Azure.Core/1.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-W0eCNnkrxJqRIvWIQoX3LD1q3VJsN/0j+p/B0FUV9NGuD+djY1c6x9cLmvc4C3zke2LH6JLiaArsoKC7pVQXkQ==", + "path": "azure.core/1.7.0", + "hashPath": "azure.core.1.7.0.nupkg.sha512" + }, + "Azure.Identity/1.4.0-beta.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-y0N862gWpuL5GgHFCUz02JNbOrP8lG/rYAmgN9OgUs4wwVZXIvvVa33xjNjYrkMqo63omisjIzQgj5ZBrTajRQ==", + "path": "azure.identity/1.4.0-beta.1", + "hashPath": "azure.identity.1.4.0-beta.1.nupkg.sha512" + }, + "Hyak.Common/1.2.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uZpnFn48nSQwHcO0/GSBZ7ExaO0sTXKv8KariXXEWLaB4Q3AeQoprYG4WpKsCT0ByW3YffETivgc5rcH5RRDvQ==", + "path": "hyak.common/1.2.2", + "hashPath": "hyak.common.1.2.2.nupkg.sha512" + }, + "Microsoft.ApplicationInsights/2.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4dX/zu3Psz9oM3ErU64xfOHuSxOwMxN6q5RabSkeYbX42Yn6dR/kDToqjs+txCRjrfHUxyYjfeJHu+MbCfvAsg==", + "path": "microsoft.applicationinsights/2.4.0", + "hashPath": "microsoft.applicationinsights.2.4.0.nupkg.sha512" + }, + "Microsoft.Azure.Common/2.2.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-abzRooh4ACKjzAKxRB6r+SHKW3d+IrLcgtVG81D+3kQU/OMjAZS1oDp9CDalhSbmxa84u0MHM5N+AKeTtKPoiw==", + "path": "microsoft.azure.common/2.2.1", + "hashPath": "microsoft.azure.common.2.2.1.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Authentication.Abstractions/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RdUhLPBvjvXxyyp76mb6Nv7x79pKbRqztjvgPFD9fW9UI6SdbRmt9RVUEp1k+5YzJCC8JgbT28qRUw1RVedydw==", + "path": "microsoft.azure.powershell.authentication.abstractions/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.authentication.abstractions.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Aks/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4Hf9D6WnplKj9ykxOLgPcR496FHoYA8e5yeqnNKMZZ4ReaNFofgZFzqeUtQhyWLVx8XxYqPbjxsa+DD7SPtOAQ==", + "path": "microsoft.azure.powershell.clients.aks/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.aks.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Authorization/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/5UKtgUgVk7BYevse2kRiY15gkPJNjfpV1N8nt1AcwOPBTlMMQVGii/EvdX4Bra1Yb218aB/1mH4/jAnnpnI6w==", + "path": "microsoft.azure.powershell.clients.authorization/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.authorization.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Compute/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ht6HzlCxuVuV97XDsx9Cutc3L/B8Xiqps8JjqGTvdC5dqFatQY4c1pNW8/aKo8aBx2paxMZX5Hy+AOJ+6AEXnA==", + "path": "microsoft.azure.powershell.clients.compute/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.compute.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vEDiqz545Bw0tiDAzMzCG9cY/Vam8btUVvRgN/nF42xWAAJ1Yk0uaCzb8s/OemfL6VvKTYogdDXofxCul8B4Ng==", + "path": "microsoft.azure.powershell.clients.graph.rbac/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.graph.rbac.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.KeyVault/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7O7Ta7XwsLZTY/fjAIdmqlXlZq3Gd6rs8qUJ/WJuBZxGr2TqW2Rz6d+ncLHD2qnKdss2c8LEs9AkxWvorGB9tQ==", + "path": "microsoft.azure.powershell.clients.keyvault/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.keyvault.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Monitor/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PsvNOLl2yKLtZ/1gn1/07869OdOZGnJasQdDjbOlchwmPNPwC+TZnX7JiAxen0oQwaGVfvwMM1eF/OgCZifIkQ==", + "path": "microsoft.azure.powershell.clients.monitor/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.monitor.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Network/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jAl1BX+EbxSoNB/DMynPrghhC2/vINi1ekx5Acv8P0XizkTyrjb84i+e1blthx31JTI+in8jYqzKlT+IgsCZ9w==", + "path": "microsoft.azure.powershell.clients.network/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.network.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.PolicyInsights/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3mBhSdr0SfGWmyOZBud68hDUZPIYRPENfRGnL8BO6x/yKc5d0pAzWux93bfpRHDs8cbN2cqAo0roeTIlCqu6rA==", + "path": "microsoft.azure.powershell.clients.policyinsights/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.policyinsights.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.ResourceManager/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UR7YcvWewBTetKgyNXTO5S+PN+k3rTfmtYd1dgwWwJQMlfQ7/E3OrB1sEEzGJi4EmFOmbE7iK81chspa6S/xfQ==", + "path": "microsoft.azure.powershell.clients.resourcemanager/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.resourcemanager.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Storage.Management/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EXtwSeiIl4XZuRdyjRGk7TEppF/StBud0r+mlGOC8oWK9IgX6WEhAtl+i5RdOBiRnwR2jQryTszh1c1UH7Qx+Q==", + "path": "microsoft.azure.powershell.clients.storage.management/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.storage.management.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Websites/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WF4JLPxX8FplnsGMGrc77E9IMfu1FRp+meKQxlKlBCqzIf2es1p0SCzUIPt5/tPHEyHwxSso7qPgGPW0JC5IDA==", + "path": "microsoft.azure.powershell.clients.websites/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.websites.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Common/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cOeRbagUGr2kZkl7yDnMXjTuuYJMZPYJQI3uokDElttWcBCZ7zONQcqU1e6Mvr+EGKbiuqRPG8laGAAJKxkzfA==", + "path": "microsoft.azure.powershell.common/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.common.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Storage/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yqyONP4F+HNqeDSHf6PMAvQnULqeVms1Bppt9Ts2derYBoOoFyPCMa9/hDfZqn+LbW15iFYf/75BJ9zr9Bnk5A==", + "path": "microsoft.azure.powershell.storage/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.storage.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Strategies/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Mpfp1394fimEdtEFVbKaEUsBdimH/E8VuijcTeQSqinq+2HxhkUMnKqWEsQPSm0smvRQFAXdj33vPpy8uDjUZA==", + "path": "microsoft.azure.powershell.strategies/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.strategies.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-K63Y4hORbBcKLWH5wnKgzyn7TOfYzevIEwIedQHBIkmkEBA9SCqgvom+XTuE+fAFGvINGkhFItaZ2dvMGdT5iw==", + "path": "microsoft.bcl.asyncinterfaces/1.0.0", + "hashPath": "microsoft.bcl.asyncinterfaces.1.0.0.nupkg.sha512" + }, + "Microsoft.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", + "path": "microsoft.csharp/4.5.0", + "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.Identity.Client/4.21.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qVoSUGfIynHWF7Lk9dRJN04AOE8pHabRja6OsiILyirTHxhKLrZ6Ixcbuge0z080kKch3vgy1QpQ53wVNbkBYw==", + "path": "microsoft.identity.client/4.21.0", + "hashPath": "microsoft.identity.client.4.21.0.nupkg.sha512" + }, + "Microsoft.Identity.Client.Extensions.Msal/2.16.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1xIcnfuFkLXP0oeh0VeH06Cs8hl57ZtCQQGPdr/i0jMwiiTgmW0deHh/4E0rop0ZrowapmO5My367cR+bwaDOQ==", + "path": "microsoft.identity.client.extensions.msal/2.16.2", + "hashPath": "microsoft.identity.client.extensions.msal.2.16.2.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TMBuzAHpTenGbGgk0SMTwyEkyijY/Eae4ZGsFNYJvAr/LDn1ku3Etp3FPxChmDp5HHF3kzJuoaa08N0xjqAJfQ==", + "path": "microsoft.netcore.platforms/1.1.1", + "hashPath": "microsoft.netcore.platforms.1.1.1.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.1.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==", + "path": "microsoft.netcore.targets/1.1.3", + "hashPath": "microsoft.netcore.targets.1.1.3.nupkg.sha512" + }, + "Microsoft.Rest.ClientRuntime/2.3.20": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bw/H1nO4JdnhTagPHWIFQwtlQ6rb2jqw5RTrqPsPqzrjhJxc7P6MyNGdf4pgHQdzdpBSNOfZTEQifoUkxmzYXQ==", + "path": "microsoft.rest.clientruntime/2.3.20", + "hashPath": "microsoft.rest.clientruntime.2.3.20.nupkg.sha512" + }, + "Microsoft.Rest.ClientRuntime.Azure/3.3.19": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+NVBWvRXNwaAPTZUxjUlQggsrf3X0GbiRoxYfgc3kG9E55ZxZxvZPT3nIfC4DNqzGSXUEvmLbckdXgBBzGdUaA==", + "path": "microsoft.rest.clientruntime.azure/3.3.19", + "hashPath": "microsoft.rest.clientruntime.azure.3.3.19.nupkg.sha512" + }, + "Microsoft.Win32.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", + "path": "microsoft.win32.primitives/4.3.0", + "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512" + }, + "Microsoft.Win32.Registry/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Lw1/VwLH1yxz6SfFEjVRCN0pnflLEsWgnV4qsdJ512/HhTwnKXUG+zDQ4yTO3K/EJQemGoNaBHX5InISNKTzUQ==", + "path": "microsoft.win32.registry/4.3.0", + "hashPath": "microsoft.win32.registry.4.3.0.nupkg.sha512" + }, + "NETStandard.Library/2.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "path": "netstandard.library/2.0.3", + "hashPath": "netstandard.library.2.0.3.nupkg.sha512" + }, + "Newtonsoft.Json/10.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hSXaFmh7hNCuEoC4XNY5DrRkLDzYHqPx/Ik23R4J86Z7PE/Y6YidhG602dFVdLBRSdG6xp9NabH3dXpcoxWvww==", + "path": "newtonsoft.json/10.0.3", + "hashPath": "newtonsoft.json.10.0.3.nupkg.sha512" + }, + "PowerShellStandard.Library/5.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iYaRvQsM1fow9h3uEmio+2m2VXfulgI16AYHaTZ8Sf7erGe27Qc8w/h6QL5UPuwv1aXR40QfzMEwcCeiYJp2cw==", + "path": "powershellstandard.library/5.1.0", + "hashPath": "powershellstandard.library.5.1.0.nupkg.sha512" + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==", + "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==", + "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==", + "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.native.System/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "path": "runtime.native.system/4.3.0", + "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" + }, + "runtime.native.System.IO.Compression/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", + "path": "runtime.native.system.io.compression/4.3.0", + "hashPath": "runtime.native.system.io.compression.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Net.Http/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", + "path": "runtime.native.system.net.http/4.3.0", + "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", + "path": "runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==", + "path": "runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==", + "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==", + "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==", + "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==", + "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==", + "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==", + "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "System.Buffers/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pL2ChpaRRWI/p4LXyy4RgeWlYF2sgfj/pnVMvBqwNFr5cXg7CXNnWZWxrOONLg8VGdFB8oB+EG2Qw4MLgTOe+A==", + "path": "system.buffers/4.5.0", + "hashPath": "system.buffers.4.5.0.nupkg.sha512" + }, + "System.Collections/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", + "path": "system.collections/4.3.0", + "hashPath": "system.collections.4.3.0.nupkg.sha512" + }, + "System.Collections.Concurrent/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", + "path": "system.collections.concurrent/4.3.0", + "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" + }, + "System.Collections.Immutable/1.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zukBRPUuNxwy9m4TGWLxKAnoiMc9+B+8VXeXVyPiBPvOd7yLgAlZ1DlsRWJjMx4VsvhhF2+6q6kO2GRbPja6hA==", + "path": "system.collections.immutable/1.3.0", + "hashPath": "system.collections.immutable.1.3.0.nupkg.sha512" + }, + "System.Collections.NonGeneric/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", + "path": "system.collections.nongeneric/4.3.0", + "hashPath": "system.collections.nongeneric.4.3.0.nupkg.sha512" + }, + "System.Collections.Specialized/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Epx8PoVZR0iuOnJJDzp7pWvdfMMOAvpUo95pC4ScH2mJuXkKA2Y4aR3cG9qt2klHgSons1WFh4kcGW7cSXvrxg==", + "path": "system.collections.specialized/4.3.0", + "hashPath": "system.collections.specialized.4.3.0.nupkg.sha512" + }, + "System.ComponentModel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==", + "path": "system.componentmodel/4.3.0", + "hashPath": "system.componentmodel.4.3.0.nupkg.sha512" + }, + "System.ComponentModel.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-j8GUkCpM8V4d4vhLIIoBLGey2Z5bCkMVNjEZseyAlm4n5arcsJOeI3zkUP+zvZgzsbLTYh4lYeP/ZD/gdIAPrw==", + "path": "system.componentmodel.primitives/4.3.0", + "hashPath": "system.componentmodel.primitives.4.3.0.nupkg.sha512" + }, + "System.ComponentModel.TypeConverter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-16pQ6P+EdhcXzPiEK4kbA953Fu0MNG2ovxTZU81/qsCd1zPRsKc3uif5NgvllCY598k6bI0KUyKW8fanlfaDQg==", + "path": "system.componentmodel.typeconverter/4.3.0", + "hashPath": "system.componentmodel.typeconverter.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", + "path": "system.diagnostics.debug/4.3.0", + "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-mbBgoR0rRfl2uimsZ2avZY8g7Xnh1Mza0rJZLPcxqiMWlkGukjmRkuMJ/er+AhQuiRIh80CR/Hpeztr80seV5g==", + "path": "system.diagnostics.diagnosticsource/4.6.0", + "hashPath": "system.diagnostics.diagnosticsource.4.6.0.nupkg.sha512" + }, + "System.Diagnostics.Process/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==", + "path": "system.diagnostics.process/4.3.0", + "hashPath": "system.diagnostics.process.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.StackTrace/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BiHg0vgtd35/DM9jvtaC1eKRpWZxr0gcQd643ABG7GnvSlf5pOkY2uyd42mMOJoOmKvnpNj0F4tuoS1pacTwYw==", + "path": "system.diagnostics.stacktrace/4.3.0", + "hashPath": "system.diagnostics.stacktrace.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", + "path": "system.diagnostics.tools/4.3.0", + "hashPath": "system.diagnostics.tools.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Tracing/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", + "path": "system.diagnostics.tracing/4.3.0", + "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" + }, + "System.Dynamic.Runtime/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-SNVi1E/vfWUAs/WYKhE9+qlS6KqK0YVhnlT0HQtr8pMIA8YX3lwy3uPMownDwdYISBdmAF/2holEIldVp85Wag==", + "path": "system.dynamic.runtime/4.3.0", + "hashPath": "system.dynamic.runtime.4.3.0.nupkg.sha512" + }, + "System.Globalization/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", + "path": "system.globalization/4.3.0", + "hashPath": "system.globalization.4.3.0.nupkg.sha512" + }, + "System.Globalization.Calendars/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", + "path": "system.globalization.calendars/4.3.0", + "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" + }, + "System.Globalization.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", + "path": "system.globalization.extensions/4.3.0", + "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" + }, + "System.IO/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "path": "system.io/4.3.0", + "hashPath": "system.io.4.3.0.nupkg.sha512" + }, + "System.IO.Compression/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", + "path": "system.io.compression/4.3.0", + "hashPath": "system.io.compression.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", + "path": "system.io.filesystem/4.3.0", + "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", + "path": "system.io.filesystem.primitives/4.3.0", + "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" + }, + "System.Linq/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", + "path": "system.linq/4.3.0", + "hashPath": "system.linq.4.3.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", + "path": "system.linq.expressions/4.3.0", + "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" + }, + "System.Memory/4.5.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==", + "path": "system.memory/4.5.3", + "hashPath": "system.memory.4.5.3.nupkg.sha512" + }, + "System.Numerics.Vectors/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==", + "path": "system.numerics.vectors/4.5.0", + "hashPath": "system.numerics.vectors.4.5.0.nupkg.sha512" + }, + "System.ObjectModel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", + "path": "system.objectmodel/4.3.0", + "hashPath": "system.objectmodel.4.3.0.nupkg.sha512" + }, + "System.Private.DataContractSerialization/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yDaJ2x3mMmjdZEDB4IbezSnCsnjQ4BxinKhRAaP6kEgL6Bb6jANWphs5SzyD8imqeC/3FxgsuXT6ykkiH1uUmA==", + "path": "system.private.datacontractserialization/4.3.0", + "hashPath": "system.private.datacontractserialization.4.3.0.nupkg.sha512" + }, + "System.Private.Uri/4.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-o1+7RJnu3Ik3PazR7Z7tJhjPdE000Eq2KGLLWhqJJKXj04wrS8lwb1OFtDF9jzXXADhUuZNJZlPc98uwwqmpFA==", + "path": "system.private.uri/4.3.2", + "hashPath": "system.private.uri.4.3.2.nupkg.sha512" + }, + "System.Reflection/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "path": "system.reflection/4.3.0", + "hashPath": "system.reflection.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", + "path": "system.reflection.emit/4.3.0", + "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", + "path": "system.reflection.emit.ilgeneration/4.3.0", + "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", + "path": "system.reflection.emit.lightweight/4.3.0", + "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" + }, + "System.Reflection.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", + "path": "system.reflection.extensions/4.3.0", + "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" + }, + "System.Reflection.Metadata/1.4.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tc2ZyJgweHCLci5oQGuhQn9TD0Ii9DReXkHtZm3aAGp8xe40rpRjiTbMXOtZU+fr0BOQ46goE9+qIqRGjR9wGg==", + "path": "system.reflection.metadata/1.4.1", + "hashPath": "system.reflection.metadata.1.4.1.nupkg.sha512" + }, + "System.Reflection.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "path": "system.reflection.primitives/4.3.0", + "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", + "path": "system.reflection.typeextensions/4.3.0", + "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "path": "system.resources.resourcemanager/4.3.0", + "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" + }, + "System.Runtime/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", + "path": "system.runtime/4.3.0", + "hashPath": "system.runtime.4.3.0.nupkg.sha512" + }, + "System.Runtime.CompilerServices.Unsafe/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HxozeSlipUK7dAroTYwIcGwKDeOVpQnJlpVaOkBz7CM4TsE5b/tKlQBZecTjh6FzcSbxndYaxxpsBMz+wMJeyw==", + "path": "system.runtime.compilerservices.unsafe/4.6.0", + "hashPath": "system.runtime.compilerservices.unsafe.4.6.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", + "path": "system.runtime.extensions/4.3.0", + "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" + }, + "System.Runtime.Handles/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", + "path": "system.runtime.handles/4.3.0", + "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" + }, + "System.Runtime.InteropServices/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "path": "system.runtime.interopservices/4.3.0", + "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" + }, + "System.Runtime.Numerics/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", + "path": "system.runtime.numerics/4.3.0", + "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Formatters/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KT591AkTNFOTbhZlaeMVvfax3RqhH1EJlcwF50Wm7sfnBLuHiOeZRRKrr1ns3NESkM20KPZ5Ol/ueMq5vg4QoQ==", + "path": "system.runtime.serialization.formatters/4.3.0", + "hashPath": "system.runtime.serialization.formatters.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Json/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CpVfOH0M/uZ5PH+M9+Gu56K0j9lJw3M+PKRegTkcrY/stOIvRUeonggxNrfBYLA5WOHL2j15KNJuTuld3x4o9w==", + "path": "system.runtime.serialization.json/4.3.0", + "hashPath": "system.runtime.serialization.json.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Wz+0KOukJGAlXjtKr+5Xpuxf8+c8739RI1C+A2BoQZT+wMCCoMDDdO8/4IRHfaVINqL78GO8dW8G2lW/e45Mcw==", + "path": "system.runtime.serialization.primitives/4.3.0", + "hashPath": "system.runtime.serialization.primitives.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", + "path": "system.security.cryptography.algorithms/4.3.0", + "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Cng/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", + "path": "system.security.cryptography.cng/4.3.0", + "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Csp/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", + "path": "system.security.cryptography.csp/4.3.0", + "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", + "path": "system.security.cryptography.encoding/4.3.0", + "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", + "path": "system.security.cryptography.openssl/4.3.0", + "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", + "path": "system.security.cryptography.primitives/4.3.0", + "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.ProtectedData/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==", + "path": "system.security.cryptography.protecteddata/4.5.0", + "hashPath": "system.security.cryptography.protecteddata.4.5.0.nupkg.sha512" + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", + "path": "system.security.cryptography.x509certificates/4.3.0", + "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" + }, + "System.Security.SecureString/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PnXp38O9q/2Oe4iZHMH60kinScv6QiiL2XH54Pj2t0Y6c2zKPEiAZsM/M3wBOHLNTBDFP0zfy13WN2M0qFz5jg==", + "path": "system.security.securestring/4.3.0", + "hashPath": "system.security.securestring.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "path": "system.text.encoding/4.3.0", + "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", + "path": "system.text.encoding.extensions/4.3.0", + "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" + }, + "System.Text.Encodings.Web/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BXgFO8Yi7ao7hVA/nklD0Hre1Bbce048ZqryGZVFifGNPuh+2jqF1i/jLJLMfFGZIzUOw+nCIeH24SQhghDSPw==", + "path": "system.text.encodings.web/4.6.0", + "hashPath": "system.text.encodings.web.4.6.0.nupkg.sha512" + }, + "System.Text.Json/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4F8Xe+JIkVoDJ8hDAZ7HqLkjctN/6WItJIzQaifBwClC7wmoLSda/Sv2i6i1kycqDb3hWF4JCVbpAweyOKHEUA==", + "path": "system.text.json/4.6.0", + "hashPath": "system.text.json.4.6.0.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", + "path": "system.text.regularexpressions/4.3.0", + "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" + }, + "System.Threading/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", + "path": "system.threading/4.3.0", + "hashPath": "system.threading.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "path": "system.threading.tasks/4.3.0", + "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks.Extensions/4.5.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BG/TNxDFv0svAzx8OiMXDlsHfGw623BZ8tCXw4YLhDFDvDhNUEV58jKYMGRnkbJNm7c3JNNJDiN7JBMzxRBR2w==", + "path": "system.threading.tasks.extensions/4.5.2", + "hashPath": "system.threading.tasks.extensions.4.5.2.nupkg.sha512" + }, + "System.Threading.Thread/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==", + "path": "system.threading.thread/4.3.0", + "hashPath": "system.threading.thread.4.3.0.nupkg.sha512" + }, + "System.Threading.ThreadPool/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==", + "path": "system.threading.threadpool/4.3.0", + "hashPath": "system.threading.threadpool.4.3.0.nupkg.sha512" + }, + "System.Xml.ReaderWriter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", + "path": "system.xml.readerwriter/4.3.0", + "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" + }, + "System.Xml.XDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", + "path": "system.xml.xdocument/4.3.0", + "hashPath": "system.xml.xdocument.4.3.0.nupkg.sha512" + }, + "System.Xml.XmlDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==", + "path": "system.xml.xmldocument/4.3.0", + "hashPath": "system.xml.xmldocument.4.3.0.nupkg.sha512" + }, + "System.Xml.XmlSerializer/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MYoTCP7EZ98RrANESW05J5ZwskKDoN0AuZ06ZflnowE50LTpbR5yRg3tHckTVm5j/m47stuGgCrCHWePyHS70Q==", + "path": "system.xml.xmlserializer/4.3.0", + "hashPath": "system.xml.xmlserializer.4.3.0.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Authentication/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll new file mode 100644 index 0000000000000000000000000000000000000000..e2a95f258c1073ebfbc61c95734211def2a965bf GIT binary patch literal 78720 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

CkkYL zym3{8YXGi+xaeIlFRl_?gK(AN8jOqH%o>7gC@vqaa$FU-Dsffe8iuPH*Kk}TaHR=4 zFUbLPp)SHp06n4xFdJ``5v*f4mEmy=PiEM_u$kfM4A+Y9aK?Wva4B{&ESL8WE=Sx< z@lPGc&<}$n#Xg2#GfXqs2ICgoK@dM1KA|TS1n0oU8>;4u8sy2wJ7U*YG=W2S72s<8 z-E)Fl0kMLJ)Pd&#K0aV0VB3IAfEx!~2YB;~;jRK!5pUb{% z>?^A3<=y$S!MPI8t46aQMvF+%0%NP( z<2%)LoV+!w(Y4Q5VwD_NImP|8u`qq6dpehz%cbUXsrg(=Iz&ag z`!YEa&&uwTE2`GH(;W8?z7QI&sl39S1N;}jZ|-{&H1F|kb?-AS7;=yMVWX+yVet3i z)MTd-8vML_tE9eO#juIJSK_#)a*w;jadY1f+)bRb1^QQu8t4=$JB=9?X(`jisU^Jt zBNeMLzvzB@F1NakHMDW5HC$>g=bXzq=W@>ZoO2!LT*o;t;+*q2=X}mNpK~^G&P|+i z6X)E_Ih#0V6X$H=oVT!-?qn}*XD@AMFCFQ~%4|t{jHOSr^aYl-u;v$Zo{uwLPitYF zEv&PJbxOzn@}GL@9K~siJX6v3rJk*_qH+bG>YY8lGd(9ezU&+E9OszVcbzAV?M!1k zU*#I#;Tk{S8rN}+A8?H=atX%OI<9dY*SL;r{Dez=!KJ?AQk%KdcU)=>m)gvwHgl=X zT*_(CxXLhST;&@y0=ILie1k^UMO-;y+jOB^&d z-jdYUZ^;O+In>v=;xcjafLw7UV3xQBt8W(GIi8-Ci#KA4zlHg?3qSaGiZ$Th#hiP^ z6~OOfe7m?4(uc$|fRBmy0C$M5A>GN+r$u3}T=5L!&xyl&Wr-KWbikKHBls^f|5ece z{58hk6gNWpj(8BTOS}m9f%pK@KeO~B@h$LujDI5fWM|=7!V!R9h?&{BIIpKx{7d+O zf6e%J;w(soydKagp94&ldm&AeloKBt=H!Y@#*@CL@4 zTq^qmZj$2)Fj`o8jcf*fE#sTzI!HU^t$?@4KY)KL^KX}*0^iE`oieL1OWZ5R0&bV{ z0Uwg#!d&q%OCOV)fIrUo4*4rcpO)_eJ}18de>d}AkcGW-#fyx;Bc*F;)Q<8J7ckjl1yGMhWL1Z0rKZ zXY2v2GX4oT!pQ80v0)4W9Ag{}IL?>{SZgc?tT)#6!+7AbQ;h4tnQq(g_XDmpb_1?4-UI9~{tdX! z=u?Eg=CbRJnj-YIaV+4a#uC6y#yY@jj2i(r8;<~X8gC%~7S4Z*u^*hH@IDlaZ!!m~D42LnSVR#tBBN-meu#TahVKc+!3{Pj+&hT7@8yMco za4W;R817~GXNLP2ehTOnVbQO&gkd$_3hGx{E%HP$V1MBQEESUhE5&TUQQ~~SvEnAc z35X@D#WcJ>QZ43)rGu-*PZ>6fHsH$uYguO}0rw;VmrP!T3&wT@3d!{D7tS9V@Dl zp_gF^!&-)Q4C@W5Wg+7Y3>%GKQN4_>Wq1yA)^W})%-PBCDdz7swuueH_cG@L&a)4k zn}$mV)t=_qCLSAJ!g#6UQEjjM&SZ_ZjX3XX6OzBzqhT)12GH?ITJUFJ)K`&hsPc z7@xp!Dmb5vXkfgNVKX>44PVRnISe;|^RMAs7{8g}R&X90{uJZ8fxj{Qea80zZy6z7 zYy-nI*EZp-DPg>nVL3QcM@(RRD)7P)jf^(~uc^g`gJzGmRnqdO?SZv*G=1U{^MEAWY< zcL2Ymd^hl)jqXaNnZ6JBuu&rILNTU7q!A}AZJW4kw3qR6;17l9) z^g_m)fqyc(1JbI>4(4n?{_4@4jBf?LVfYS6w^i<7&Teofj_zW7A8z4(Ww?dm4u(4!b}`(`Q1oVP4806X7}heZW4MrE1H-ipw=mqvu#4edhN2H^ zW9VgA!myTM9m9nT8yI#l>}0ru;ZBBK4EHh=eOV_%FT)aswG8VRE@ariu!G@RhN2&p z^)l>axPxIAL(!k53~L!KWZ1z_6tR?HEyINjI~aB{+`+Jmp%}pV8Fn(XFzi$ud^e0y!LXCz4u)L}g_kumtYx^6VF$x5@6FW45`qgEb~5Z@=pDp-hMf$% z7VM*u~IW#(ajI47(V5hYTG8hMX=LB21)lDWn( zqschmxWRbDc+L3S$Z+@^6CCp#en*Gn3dc>3haE3D{^98BJj@w(9-i__%8Jy?v`f7t zvzXwT0)p>WUIo}Y>juE{%YO;@pOkf0Zi9vs`;g|JvF2xr2ru$bEip7pz?B|V)~-#J`X!fDdX(ljxQ!z!NZY@Po&|iN`~|>| zIp=X%uLGYokff@X5Az9cXXzxacaoPlNA@FVx4DA(&LMvU|4+R?0DPfvAK>r-lv7Dn z+f`e3mwg6)RTfDVzk%C0zwj$?oI}0??9H5y*e4IORfBzQJTp%$wS;TmG9LaV|fFIZsRjemWH3qV8Mz+dLy2xy3#;Vmg{0W`$z@D@GIXaIf(yd}jpKttREZ%J`4pn>zQ zCBW|oG{l4OmK47RG;sE{4EV!>d>5c0o`wIUcn;7IyZKiFo(D9;*K$d+@Oo?*ke*VY?9cp8*ZLiM$c`UjPmK z#>XYV_W>GsyZ18Sp8*=;Z~Q9-`vDDn>whKq{{S>_3U@W|F98klExazpcYt^o1-}e} zufG8e@jXr!=_Q=&flGNKa03vtQEmb51T^rZXaMHNXR-$KBf}^I%rb`JNnAGYB9RMx z08U-X01JT+#Mw(3U_ao+IDw%#G!VE~c!7JxAmAlpFz^yF1o$AF#*_h8058RvOc`J` z@WD8lDFYk{ybR|vWq^kRAA(bwGQgvN55-wc8Q?L%eK@fx0~`;$9OpJ=fRlh%h$+A; z#Ie9Dae7k*I1_jk&Tz^Aj|V;sCpl$+^MF_5Jf{rs6yU>gs#6B|GvFh{Lf|9BBH#tE z{b*5--;wCRSp2>C1Sf`z<@xe)d5kf~Xg9VQ_Z!a|?-~1y14dtm*KwHRdqBh`4{BDzGAqi$ajpy$4?AZDj z&b$~;d+Ci5>t8r?8J;lX7qTptSeJQP36cG=4j17XfNLPGVq9KaCAbFRD#bMzR~fD$ zSgnWR^5H7SRe`G#R~4>dxTc_yf?X|sZ)_26+?^kdYqsM7(MEUbNH;q+ieKS+-toRT z!#P&I>l!PExyQ=W+^5R3+yS`@>0dz?ri_&XaaE>llsDqK4cGRRQ{}Fd>*To9>tsEy z<5EwRjj3DZTe$Y(`V6#4+bVyWhF^P1dsaRN{6ajp*o5mQ&$BW={aHBxS7rKGc?7On zTr+WFJ-!y}16F{=J-&kz?GMF~E2a*FQ3b8vQc|80DEmjiWL@l~Zt?n#oR@ z)7H@1)DUc{s~I82`Bxru*n$OwO$hoM+WfPEC#+~fdSY|i(kX3iD`xmZp@t>?P+e$M zYvVCZoHeRogovUwHBr3Yj?V!Rr`l2lQN6##f3Vt+WqNa{ZTza^{h>g6u+cv`7-(NH z)4#GUs%B)3n9z69UVZqmiNNx@Dp2$^KS<5KU^Tp63sSnggvP zN7Nj#V8oaOqb!^2EVSN2Ct2uZ3$34H;gf;0fl+HfAJYyuiK(;Uw}mxgW_wFZ!=e^K zr%r5bUk+OoH6hTtxOoZ8ZJOHrY zw6ypesSqeOi6k@pZA$}9BFg0&NOS8YV zjWSV}5MPg^nGj{-)}D^Fkz#6V+bBzSorTt0=p+lpCn=^; z^>ZwIvJJ=ZoM%bUnRc?yPSnQ`b7H8Pk+DkbWSyO;k0Iv7P&K1smBf%S#GDwaW^`;h zJ6UHZ>SKsGF;vZAu}Wgd7-Ei{svBb~RyT6Fof;iOjUj5>g3!`HdrQ;YU_+yymKv~V zevA~;{Hx|Qw6yzYH#7(FebChUW*)c=!BwE5omex*rYbWE(zl)W~_31RZM;6Jvt)V1h}Bx`lFt01PHx13R5 zGuqy{qg8QQ+q>U=tP(RPjIZ}iYl=5#n_*z9s0s)yjIFd=3z3;T857yy=OE36u!!LTGplBVd=3TjsU;+vc<{0>lqZ zQuY|e8FndWZ-Af7oEkqvrzD@$91OL=Zy|qUdt37vel)eMxpC@jR^6>|ad)NWa+9#D z)Hk#>unrSnrg?K#h1&ef5geL9l8z0V8xi5OHnEokyqRQjiSA~<5~$5bDLCHW09AAN z$2t`!$qebHuB82#tnPzkJjg~Ul30>l6THxaaZAohUY;uIUXmo5?>=+4izw9|Yh=`` zQDk-?)HW-qToMgw5l~}fT6x-$Wp+bbl$n@ip~hhI3X0@)_Ba+5Rq?o%M~Oy`(lu9Gtm`uGgj8NjMsvA4 zSzVK|b7CvqoG8;xoQ#+nGAX~#!FMtzw1yfM`)9S{PHY9;;VC6kv8bE$+@-<5nNt@} zXlQNp;|@vP>F|b&%rpIGPHt~*665SE(lN^xEEwO=xD3C7JE_^<0;zogN+MN@O`@Q? z#U(MPUP2NDhkyt#FDLnw4+Aeh87nkOsTrZ==M zX~$h@V(~e+`-4DljfryF-hzRa*)0vN-DlFbiL>!D#f{A?8d|#5HodvEePy@OnGMU6 zS?F&J`rDGrxbY{1{K3|wMdz+skwoFFVB=Cmceuw61iQ%*O3sJnXEf760tO;&T1k}8 zTTZ)bq8~Ay=FzB}!>u{qzc@*j_Cd4kCW=hq}!&UEgXX);@1}eRIQ-R;={R zjiE%b-p!Lp>XsmiogKiiR$+9KEOQ%{B;jJ9H#f92ujWN-j=!yqewRD3=6XMdWKS~U zIHU=tAZrpWQxUTyVb5r2MfWvLXlX}K6HJm}b|Bc6jNQJdrMVH~Fo{f!%EX4Kg)0d^ z(2m=HgmrLwpmoXd?X5IDY&&XOaMj%A<^Di>k`nc;h|2won^z_%qpeAuU-99WMln=y zkHDvxykEwwe!RQJavJQbqd4Bbq6McBVybzjsP^3GO$XOR6I7Q^iC}R7ZMs94V8kZqXI5|GD)y=lA{A^|H zW*|Z_djl6rvK?^AWcVZ_%TBW$s4 zw5*HvPu9T*?yC7rT@is6e+*Zhv{L~Z&1!9kmX9ILotZPnY{pzyEQjZ!xmnvz?lG&{ zs&!AXW^57R&OpcSgjiUxI2#0$sZ0R ze>5P}qT&~`8-gLffE$|W;ZCwUN}lTSl*nC?kZ;^EH4FIoM%SV4yfDg_ zufRD~(2R4N>e_IByr>qrzMXfW^mETQtBzDH_lSjkw(l2g627M+GiKNiny4!W(WJ(*xa zV8yCn^OB{uG8iTe%j<%{hE<7r$cBbin*dup%~IyKH7{yzX>PMg$s|;bhgfzltt31d z#SDK_a|2D4DL60j2NjdVQyM~wID?)JVE8W&oT28l3aWW5YV-^avvKg-Ou-W(ZXUh~ zK{gjj z8q|rDm>bXt*`(A^_$sD`X3!A`y8yQtY#FD(C*n~m9ndIY^maq#v5^)^9jWgWOeuON+p{Lu;UIyq~-uJ!Qp7_;QOF1DuZxF~AxTXJZwf(cId+ynVTi(Xf&kWHH?} zv89YGCdz)gF*mTx-zpky=N*c3Y@oT7o1m8yR$=0#*Sfu8k&Ps&ed97qQQs!x+xIjx zFX>3Q|Kf@gxikY}?$g8>>XACzZ{DJD;V99fZ`{P(;3^y@(Ky0A00um5MOc6nLLiK~ zm^G3PgW7OROpo_zRjJ10v+k;Fea@R~tk9eo{>A#axR}rqXm6Uhl8!^D^19#>Jd$s1 zqhVliE$b{^jADyT7FpCBf15?b*^N!O4Z&nFW5AF0V;fcY971#{*4W#{M(Uh2j-u6BS@=wMgH@zAHbRxpb zAQtMtn8QcZ&{i@B8!}2^4w4`?@St&N$<(M11_QxZe(bFYy+DF7AuPq?doB0NXOC`rFh8aS0&=_a6?=)k=qb| z7RCcF=6R`k`+#NhcsxQ3C3qnA+<;=c#60t6(7~vZp_e)CQI^tC8ym++8&TxMm}M8s zE1$J-zT^@r)6Kyfm+DSNW7*XBf7<&FxG0k4;n`)$u)rdU3b=|229{ZpU{*jt(kdvR zAR-{3v7ZuSnV9p9A%oxrrD(0NCXHKV{Sx?V!epNj?y9>^G_x-=;z4!Zn58d6K z?&_-Q>gww0>ggKvFDMDMZSNKvo12`HqcP8X@7{v#M%7KA1aC~BHsh|t{Z^)38a_Y5 zm*%yy&l&roSrD&w6n?`GC`{VldFD-m%8{y8^B7$iKo7ObKY+gKgOEc2gD}>NYV}s#dKr>5uQ_5x~)l}{2HV;5H8 zNs0M{3ze&$kW*hJur7Q+47+;-wsS_p5CTRLC@5Hje>-jDB&*aKhJCDWRvs)4a)(g9 zX_@d%ne~G+8#z=WoB+v&(->5pc=%0(lP-yHVkH-H;@}iZ4jf5JhO1mSxsn6tWt`z( z8kD5NCkY_al+Y5m9tvkM5Q7BHe`G)jW#s}-kW1lIj1&BN!nZ42@r)6_6HtY-D5mj1 zBSndWG7JGMh>q*q;7?F(2NH z?XAIU08pZ=WWZHFk{b_aa1!Cn32pQ?ZbPag91Um; z#{#0MK5#G~8Zbmdy=bV7uq-yFb~G^k{Tjodi(TL#0e-u}VH*&pSx;zo9*8Ly4lVhB z*up?mjI!lYsxG$=B*J7mEfHYBp-%OLZ@5{84##z{eX$?c6PCO_GQbml|dDuy6YT6)b@MsYP z_2Nl=CD%^5fERo*&^wwcB!MGenUG(jzPmQ)Fe0BEBDoZ(iE5ASC#qaaCM84K!lVB^-%>7E7kC?c%d4^5m7q9X*x}X zX$P&K@!XdVyoW}oDZC!u56;ttQi zq$!5;ISlV`X0d^qTTcG`dH{_$Vu=y~2P&?ZU}0<^W62p?ilwOJ41aLHMfwKeBrs4A zJN6rLjXmQBzj&3Y9;Obg5_N`Q*j+0;C4Z((eg2+uX=jD0uf3eLDF3L6It(Kn{(a$% zps2bv`DVGL?EOHPxiE2Mf@+~E;h?Hv$rNq=e-bL%AZ_Bp&PBb{CMr}C6kvZ4Bs2A3 z3<2%fC<|s1NmOgPvO_v4$3D*6)w=^MlcK|aJA}Ex!VY20B$ud|&cwM_En*lC5O$-c z;2{^xG>!#IVfpA7(yJidRQX&j(7eJCPn` z>H{-t5Sd+l!OY>Dmk%X)$BXL(oHf$nMudXfBfJ&D8$SjDRe*(Np+E(kS-9`dGb$|9 zs%_bAhIr2onUeV>`*2T-4wR0V;t9k&o`EiWSy*9GsAnZ=#}gR{#FWTa-%2E(2p4)# zAd*jEe#&&ANMQyYx{10O!Ry9(h|-P{7y&9> zD~lM0o+U-ne5`4quw{N4GCxh2pJvRD6aI)4?m%k<{CXL~C2;l%(?(*7O&S0zzL;mJ z&$mdmvXIXKs4V#8@kBvpHLeX|U?Bvw068=#>{+B5Ai6ZjMI4zm>Occ5GR>eMS5+X2 zG}cHXKrRC0t21R905Sx~M}XmKfFKQkAOsk04ghkw281r;%H^h*J(^^TJ->nYumGS! zmK3QrTZs`nf^99P3DMaEWWELn$)0b5Y%&Bzk)Um9JW-@RK`)9VWu>GFlQ{n+r`7>P@+3<~BxgLj*{4uHgvu5R=3G_A=ZW|HJE&`#^O}j|;-kRBap)wg= z27EoCE(}DW5C%AmFC9qP=)!;$3XK6oB>#gaauc~RLs#U6y@z>ZFq1MBl#R$n35CB{ zW}_+#7lkX!@E6O%L2e0v#sGd{bXrmjW=t8ui$sW}AmhxEO4YApAgZMvorvkk_f#4|!H3_)WtAM{5gzX&4)sDd!~MBBC-(R@A{Gjlthz7Ys;yG1HkVid$h zGcj~M3?h^g)`LzXS4LtU5tb#zN1H5bPcWCS z$y~mgxqOB>obW_oX$f;O4d#OW3Fd}tGB;e!+;E0DoNPs4&k1uu&Gq$_7D*ID1RF$D zSCy;+r2%mVfx0MXKD@%g%a&mJpc2Ylsqjo4n7kXA^8`3BFvE@#bz*+i76AsN9pM0` zcKAg?!Y>(MiV+51 zE*afoEXOo^-m=%|N=x zv*%im5O)K5ZRo>|%hx@Vm%>H>C6H6pbcmIs$A>St?j8p5VFc)k=24qJmptN+Od4x9 zxb@_l<2;YpUf}OY+%C558`Xa1fvJgh#q+B=)UtZIxx*R@={n={t_Pp@ZJ6XV%le6Q z#kxw@=%%&WtvmW|=BSKWN8bC%9?XhP zxNE)0_vYJy&0C24*6vSi@ov9?Zp=!XFj$kK!=G8NGF~5c*U35^w5cr67|if~mEzZ9qpg6$Pf;x62ET$FX}xL9xj zm%?{Yx^h!;`{Td2txCvr}+-~+*9ztd{AP!l<4s~JEot#(tjnzJse2%ODh z3;&V>#*Ap;z*EHm=co+>eW}OQ>sTP=RzaqSkzGsebr}Fn?zIwf(N2ifKCOgUfWJjZ z%b>y*vD&1S5DW0P2)Su*5vy5R39$g0gg9*hvdwAQ{zrW>?$z7~@mrm_f}#!g+V z$)Xk#TJ$nZC2%byxWui6gcg$>rW)Z|NN@>SiyT=oYr(`8Ys!NIlP~ngcdR>8oI|>d z)4KaA`-M}cSjg7pr0uGz&7n=c&>!mh9M;NLDNQZ3)s~Kvwuh=VCv7ZddFQ149UJEh zdq8Ym4)fmyWX_>CnC-!3`j~?p(b1QD|&9gn$K{(!l~(Z8bRMgEcsb`)lh=rXY>$u7@qk=28Nt zFq^CW{-ACg&BW|9E>uB;w;b*wX3TM*3nBx8vjF>?V~hj?9TzebI16!v;nPJNb8rYe z-h_3v6uCf64wP66i?X?-frXr-D+Hb`(@Lu+LCDc)tmQ!&F?+Fju!}2IR=4@QKm`KR9fAGCzFCF^7+VG58^2pM(^_bzAt*@bOpfpNQP}dVDr* z0|kxY(^8+QB!qN0TSyYPgCXSW8JMHbU32RbAZrQq!25^v*c}Lg9=O}_s}gfr2NZ&B zH)NdlP=w`IfgthWo2c=EznN5mjW~@=nKDzRnHi+a3<55KNCE32C1hYHO+H3Na17F4 zrmBw4G13}MpBA(ko2Mkr`kmNZhPEx*qrQfcY{4{BiKKHJ#O6YCVB8?FeWdG~U3@L#~h6O@%cvb*+tC%Zg9Ym+9LoT4e2mC#JA3mdx(hv5K-sKN=V za23^XHC1)ek`h8yhEc*Z0VgR2oFoN~I40q%2YyBAI8s7=M`kQ4fB9Hoj$Z~QP@?J@ z%xQ~XG=BLTD$7J}fP=5PvcbZ}_|?)t2_eL*a213q1>4mK!LY>x18#tC>A*ib^uC7k zYvXar5REgpB#vAT58%*SOHm#?s;(r&H=I3(*s>>cM7iA{7YPj*gtb&*A}~5eYTOVK z)TAD4jjQ5yh`lqi;qVP}J{jL4s^1+>fW|=x4a$K>HBv=R5bs+l)>27686I37r!FMN zP{is3>0;&tOO6;ql#5eS`ej4lV~H3~Rf-{agg7rJQ9KxqN{e%o6UE=u&1OO`NW>u- zx#AQ&lai2_KT(nxjZW4$F`QSH)^7wU~&b#*6hbpfP!@d57;qO8dRLudkVXh_sDTowq@;j1o3fi5}O4T}a`QB{K_TE!l@X899Yn%9!pnlc zMPR_jisNn$h6JLhkGtmCxfz!0U64$=G^Jj?IP}z)R?iye=+1v`^PuC-Is2~J)-Sp7 z;n`B_@$X87X#wxXDN6I-)GMgGJ1r`vpy%&RA}{W)?eOKrhMnWKt*ajwZW#F_V(J+4 zcdZZoHaLrVa^#q`$&1F#Y@SM*w|Vrs;n0I$?ws~(eYozurY~d1wz5w=-Uoe5{m$Nm zmtO|U(BqT=pW#7p+aN)A74wHFOZdR+6RD?A_Ee(`A4t0T(mSgCpsrPJ{lZF(HZ>)L@QlU(HcRp!Lt=za{}e|=SVUW`cYy2 zom|{KC?&-Ncb&J9=E!JRJBiTg*j-ntIPPR{KYA{4= zq0(~VGqMvCB^Yp#`TN=gu+(h62Cn~T2Kk*S$9YVoY^$QUJ$RBQJ zF&<832K@NIhX+{kna(b-`Guz(1K=so{zNPB*;T9+PM#LUI3XB#f<5`qU|BDi4In(= z34=-C*~cUfOt}PxhITXm+~5p9$bf3e8xM6cZbBOTW8$&k82vW7f*77RW#g`h;i*B~ zqGKW~;3~Dgj0d7z`LN za)3I1z+cnNhT2Rd8EgaM4*~vi;TPqBr$+I)Std3DN*3wi1Gab?6raOI-mx5GI;28* zrb-qpU*LX)lclv)vceOx>A=70P`wtJp=7fGAM?Dgy5|OgW#Os%3D38F8~p-Ma`XcR z^I-cy!r2cP2Sc+Tum<)6{z=Fiv{_B75fB8*r2ydy9~X!XgMWh{J`9g&By$cJA5Bix zX!W;x@;~QK0)2pbgn!BKCRrXx98Vl0MU-PE$Qw002}*MT=G#0myd7H1Av4rW?tUmB z?F&`nMQuT9tbFi_Lw0{COozJuGMkq?fXMkKR%BqHKR@S4Eq-O^AdFge4Z{vN9!52(Blbsg{}BJL1_pb zMAy;CF{2H2cvPuiF<(y6(i(LI;_H3|XP2jsnDjnmeg2*?_4Y5mR8rS*dfdT_cCz!-_jMP>ap2%vaO;z9)`2?c!g+{%<_zZr2?rjZK$Wy zL!f8L?-3@oq%H8mz|trpE(hMAkOYyGrRKB{GxaTDTQeaoBRxTCN84bIktO#YsML{e zisd?%4OF+8ut%DZC=N?W!uPz0W!{~{@LpvpZCA(Cg{EC;H>szqms_h|a4CgLSLG$0 z`$PCs@~@+Xf4Y#@NK;VIcRGbUGw5rc5xGXlqK)K9Rx5 zVA7Qbt`p8QnebuWgeHp`YzZ2YuhFQYr3{dn}ZB^dIq5Dy1M#0IyL$hQ$_w0NQVi2 zj%_oKC+IFm0b_Nj*6>GPxQ*#5W?>~aD{F{+^n4E z%}it3_V|#{`_}5tw{0f0vhXnJ^TO)-wQ#fvWYSub07U|Y%UbFXe5tGh3MNL5C| z_r7!VMNTUUl5WrME^1P8gVvvskQg#H&9Hny9sSlTrcQe^WZ|Zq*xN@6PabR1*YbYo zRIdx2kHlR366#|3e#cpJ94z`!yTwB!c*{p&op%wjK7vDHxT<}09Uppl! z_0MJ}kKMQsdV0X+qx-f;x0up@;GvW~m(sWNGu~y`X;ojnv57zL^RhndyT-a*!#l(N z-1I@TOcrx@?a;Rm67wH#yAn6)e!&%2r!N=R6}Ueh2f;xnUTaWRZ^CWkJ_DqMy*rn8 z-&yqYj>3V?lW*EM)%oMBz%%RsU8p}4rh$IU6krr5EICK!OPw0ZLMw`Yh-n3Djzdz% zvYFcScZXQ#VsFszl>R9YY8IYQ$%Cl=*$}i-H3`5}(2DkSq20Y`FPsEC$fcCV%YXYM zRmlH#I^g4Uz=!Do#@yOV53C^wuBoy2z^~?R5zo61=IUBPOVrNF#mCKpL4h7g>5uy zxxeD-$`AFs2mR{Oy{X9g(P{(P=}kUcW3C*K=;W(>~n0sc(8QddRYXW{*sFms$?qJ-ywFPxo5%GH(#v z({b_8?AxN&TLb!BdG^eE%BZWuHV!MQf3^LF2{FHp3mskWb(wS2{gO6L>s%ubZf*ak z%lS<@?KW(znCe+@Zh^ezyO5q!8oD>x@0Fe~GHl0uv$b{YM<0K?L#Jrs``DLfy6>4V zeeABi4Rf2sT03qz;o#`mWVTmVkJH09OkHPVU%s;cZ*dI<+;I$85LJG<8K3uCYEwc1o!|3Z(zM_y%SkL?3?S#R?h z?t8y#fA-MZ*^e6E+S6su!58~%BCd~`_*-xQUA}tKt>1bts`z|kegC^vvlPRgU3wPy zD4rJoRd>etj5}Z$bnwD5 zZ|B?@@6$iziz8cF#`K*rw|%JV=xghX>)c!z@^U0q63XP>)$sd$1hI~_iQ>F_aa zu4kyc%d_GM;6{wnnEyB@qq?dJwfF)PJ0tL}V1!CJI#?f4xGLC z{vR?E!MKG{3xicP*~QYXu`VuTvg^Z6ZZO$(r)6{qdkvFa=kHB+&hhL__Z|GXv|jH zc&5dj_^ER`&m3`Xh)GFRVyvWP`w#oG&!&y~b9aYdjgGb1Q>V9VZmx1@%>r0x=d)Ti2vJ0DS2T%99`#9mKPrLk~ z_HQglEHB9&HSz87ru;6=_l-B-xpbwj$-HODACo0BN}G3RJ}@#MzJXy%dav0t?~i)B zck-JqEpC2pbEeY$MS7EU4=NmmF>pdflqHn{TA2OO`{uksIDRe7M=NwK!$=#;9@0=^5o)bN6@D)mzSM z?%2MtgJp1kQEJnYGL?(BFKHyulf&*})C-mUZwQZ0COH+~UQHh7N7?(SJsR)t~(AR7C)uk z*#$jALiflc8kOZ+xHKI4qLa~v4xd(>SQ=ARRy;2vt7nM6@7~Tw=MCy@B=;ZqWyqqc z%CxirN4w`(nhuqnlonbg(S=s=u>7MHGydHZm(~@a#-g-Tv5p1PSsgH}SAY zg>{~K$!aVW!u_ZE+KP5oR}@Ga3B)n;qn+Q{ZVbM5+eW;o!McM5b_Z@cmA-h=s=`GS z*4y0b=g6R8{RQd&zc`qtl7R!?rNZA@zpJ6MAw$d55O)eE$7oFNaYiy6b zFB6Wgu+9F9_Dj8AwraYyrFDUCV)V?SQB=tJ=gVfu z4J7^A*`0H$-L>|vl@85sImDDrF5$PIy>@j{vykH94&B=RE^jK{p80zp>w?@p0}j16 za~(SCbMdARn|gmL1y>Fn#~nY39>*`3}gc2t1iLK&M^rCr`FN?)cOG zOveW==MM~udg?pU?~}`g6<_BLobQk{k$>v??{*J64{IgA+VbF+IUnRH4wtXhzBgd( zD*ls){!V>kkG_1cVX=>Ss#)TVE!3S_!C!|K7=+ea)!_i|mD7?N0khX!NclZdQe0Lj zdPNtCo~eYZqr;OHif%yORaFn6Z$fkovJUZiI^X&x3VA*Bj9D#!xHqMRJRgv4N0`#u zf;KBrkB&0Z;c+-89^4P?OJAJ3B)I4EaM$B4-lpuXnEt>h@sa+EHq>p0h`M~e*kbQX zg7wyxE;L#9w~|8dyLn1Hq^)|<0y&@ewp4Lpsp2fHIQ2trOaCtxl}+i!F!R9r(>6Rg z4qjX$4i5_x`-X+I_IB&+XlDl%dfnBlVKH zNWEZr>*nsEbjnCuDKG!m^%3a!w>S8j{+g&HJZbnJs1aljM87`0a^_$u+>*z_(3*82pj=Iry z-Swo=4mxK#l-|$xU*YQ9XY^6UI{&?*7lsY?bXK8jPr`Z>EnmE4SO16IOq2PQG?n&ootbwxN*tgEcOPsK1iyL#_g=) zLTWAf`HA)au-Lag`DR_K4<-xks@;`djBg!1URv_Td)V+U^$)rx_ZpMdgYL=Pm4?#b zekld_i^@0h_wGtzjKK&4WkvT3P24Y1a!1;Wy`zIWQgp6%Wv}6mw7s_J1pPbeJ5nvU zYx-R*u?0;8CbSVtLdT%S5C(@KkLvw^w{=y-uf12jix?O7(R-Iu(7{^?TSxfaUi5Zz zCo1&B{nW3kmrM@L{yA@=>6?Z74Mj)S#=dgy^P%>mJ^_ax#+-eUyG73@jJh5+XLttv z^S)#6XAgTVYxuF{9}Dg}ba}TT^W1#@kDZfZFPvDu=4IoDZQ~AEFYXg<;N<_J!NQHt zHy%E)mR?x(?uvJ%%aD5h7mvC%n>y!1Em6mlr=AZs9+~(!ryKSAy3-k#Hg>O-c<{X& zJ)!W=xc*M%V{VOTU^BPzJex%kpU2GD`{~g;n@dk#ZA}=PGh0#jWW~?6^IsJ0_>_L* zm!g$pWpvf#`NsLq8|e4V?2r38o?h3X!e?H`(UDsveO%ACq6_u1!1zV6&Im(AbK;EP z*AUi!jx&NWel&O=!2Y>TNEoZ&^I5K7W zz}#^2i_46t!ZDwo4Nnei8GCU5gSdTzwzluzqW4RyFb9FOL8tolX4sxGw45|Nj*i+u z`df>hcyT81OZtPk$2P2ZJ+!%z^yRe>y(wFY z4cvdtw^{#q&dIiqoPBnbzx^elaw)G$Y&b3dk8`>zCwNwwmQr-RT zQk>H?{Y#eO7k}@0eDbf0qx&VFZ8yE7_vKS_tq=Ua8a>rgS!whZdihs zqMd_dg@@F}=sI7c z|L9Z4eRkuXfw?a_n;)szGxE^L*R4kM>R|JF&XBHCx>FUNW_8{<4^bpuUAcMS{llkz zKQ@%g2&8=)H)?zOna;AAlcSpL+VVwkCv%ZYSBEb>DxCk^@?etd&VI3TuSaxz{OZ)4 z{v{K>4(K=X#=)+}Q<~oO`mJu)toQ}P8m8@^zhrUSk0VFS98i+KJnh__`G44c_PjFv z?V)8xGmDm1F08js(0SCh&GLDTJjI)vJV^NM{o6eS@lj38hDy951})B7r8nMeTt%Ksm9Oqlw;oCLmriT_KG84# z*AFZFSHHiRT@W`gWAIAF@p8j8UORs~bo@%;&)Fw!-){Mn$KNg z(VsrQGuI{XR{XGcbH+Q@Kise)YV*2ZeA>>EWnC^icd*C3l$#M%XK&Jbznpj&{K<4r zOz7hUc6B|Scb$&ZmAo)5mAPMgVd!9UaZ`c2oxzT49@o#uPQIC293UzycBynBYOgMJPd3noZe(r7t_5i~*tB!$rONPBX3&Gdz%c#>Sa=F}QfIi`Gg2Zz z$Ep#0@%g%Y_}~oHCuva{1JG^Pd<5{&sLsc2X_W&5SF-$4BiaC~>FAe<%h)ups8sXz z1X$KlC@A+C+x?DQTh(mkrhfZp^~>PbpSQzm{QIr*x;$OxVOMUcv$uS}%aVk&tY0SS zS9Cb`@I>zD3ll!g(d~HmmYulAjp9*L$M(G%`QlC5?x1IvG8|IUPG>t^ayn{Oe_et1 z*otni+AW;-`lfLBm`CyL7EQ}M7%VwAY{)jN8_%a+y?1utd&&BT(n1|mSVI~Tt)BMp z?NP?B#Ic0c^eYwey3+Mj-Uo0jnO5^JeB(Q^oV=mx)q&N$d`HPFKWzQ*bGOf5jOsRO zbHroUgSstrQ~S}1j~WR0&Qiq_TJeZh+@}?l0&+5WVWjCo9D!S~2@SU?^}44jgC0blYEiGcd&9WZ1E2{o^?Wf!*n_ODzt0gcwS; zx(1eqX(}Z62hiyivUr$jdR5apzs`0n{(5@k_TeiVcV4~oZh>8!#!1hTBH`?K%pmKN z(}$htb7sLj1AkMKu|3QJ8rQF!-Qvo1%Smk;R!z2;x_oo;fJM7@9+Tbao6y#M`q89m zj&)WZS(Sb~v1{^_*2g9dXtT6R@_XCkbDmcW3~2C9+(hv4k2yby{9BA~x$9AjCGG7_ z`VCeTsH0Kh!2*>Wfy7b-J8<Gdp|a*z9g5_q_=WIe-vu6vKUAhC@IExj|sU1`z0N?jsWJBZAx@ zry$6UC~_G8w_cI*rYx8nbdRmA(IX`WYUJ)%$sy@b?<#v95SSBs!_e|MxM8&U+~^O z+4IH)p4Xz>5$hm73HiC8o;OVL$kJ~9#nd|vO#J)(!T^5FJ(-8{ zpQWZq7XBVuJMgw)26{heV#fR}7kCT1k>4Zm27^4ZR^V+P%kt1kiRp553(A{1^;SG= zpCb=LdE8hS3z_(etot_!t*_X#pl2^I#WvXJl~9GR-0|r`9hGf9N zgj0rOz`*D!Lo#4sB$Oc;FyOW_Bm+is%#aKim?(OLWWaz6%8(2gZ81YKU<`^Gk^uv~ zr&S~a#*mmH88C*%49Tn=6e?ppuPvxd!^liuHz*V6q_m&mT}OMSkbIOJsqwJ_*x1o=z`MB!AgTF+L$r@XNlU}RlKg1 z18+++vO!Z_%Zpi!^aBRgwWVw2g12>|cWAM$yZzSe!RC@zfyev{f(6UNl*(}06D-(+ z`4O70GCxZ5A@dkD9&}qxB_Uj@AP$g)9x~^gBKF@r+KdmyF74 zGzNNO{g8?N9i?s|!n%ugiqTF&o1z_rs{VPBFGpVnErl$peyl9iPlltv;NeU|T<|)A zLZ`R1jA8Oi6?A*4x;l(N)yf)b3~kvA$6_?ZmVJ<=ulouuM*9h^tVtjDmV7zd3$zrn zq&A=~Z6KqvcH(2-Heht>+JG?>8@?g!6rzKK7NdiOstpH9z8oC@S_)ZG8&H=vkfAoz z8}vQRpkrq15-6EuOfZ|oh8~F74~GgZMu=f3H$@ACR@PyE%$IyQs)Ck6medyLpe3lz{G}&q;4Vlw$Nhq9idIpg+f*TV#$}I3qVUDOR66_sGp1) z{jEm-jZ(J|T`#m4eNSjpbc0aUf1TvZ(Y2tZkR{a*9n?>TqhIG#8}z&LdVkKTbuM2Fpr5>#EzdxTZQNWp~dJyp-s_4LNV?SYo;lBL^Gx6r;<@q z@0WZz`Y~uJWJyhhn>3XSHI=bwLSm=25Vq9qE5v@W@o{OS5dBPOG5WbsHQ+JHm!n5P zOCd{Y0Q{o?WH^1*w+)9humRCWZ1|Ml2*p_aMl(&(i;}5qz}fVi z*ahtkGwuCNY8Ik5gchT}2yKeq6pHr#Dw)d0Z066B zFGsI~mO_@a85qxI$f#^8%_M6ZycEAalB$L1L!rg!ze1a${|Hs}|CW3?`T(>PvZU%^ zE7g+`tB3w3ZxZ|fK)`ufbk2t(IMSQJ3RJFaPHSSHyNoS^eC^}GLW|K5p-s_Hq42p~ zGLF74%2u(@MGqjy8?H9l6W~aiw6!s58#$OZZHHsa#-=W5 zrVtGmT8zp8cl4%7 z9Yn*)sO+Gf7tfbb#+EgtY9U%(Xfaw-Xj8PdP}s7TWVD^tBwvnJ1ucavX*(EbwnIj? zozbS9&82D~+Ei#U+DvFuw53qAvxQ_TJJO#`Bwvm;1}%jwX*(E1wnIkcE7l*bF=I?S zyGhkTw2RPUw5!mj=&M4}&hDCNioPZpZE$DFm!q$MmO_@aL5vt1B*Qcq_up949di%M`wbTLYA~43<4V>BW@^O3lKZSkE^9>A-YOvF}g-*Q}kV-s{TsJm!m5{OCd|D z9(_*rWW?&l5B3w*CeeSp)Gb7J2rWi;32ln*6sptsHp!QxAApuZmQ+9bn)=Czr*YCx zlZ^hKO5H;Ah|prRL}*j=m{9c7qmt2v9+rGLdI+=>vZM{6)7cOiaYJ!GO*ZYkC{+v5 zuY?w(UkgR76sqcK398gchU!2yKe~EmZaYOY-IDeb7?KlIllaQ$HCs z`hgW?oCgJZ-n9xXMuUYmMQuV=e~aYHQ8Q>MWJ&d-kEx#wM}LdA9Olt9=x59&4jo#u zvE>ZLmYuQYKt%;74g(R#>~PdUJ+Wzww1?Ot6tP8UQ#4*E<_7lPxOg{36E#zcCTXTQ znk<>hu3Y{`OCE6u6mbZt+KsWJ-DFgDQxjl=#${u-HTbMrgX1~2ys>whv{Q(%WeKy2 z(egr@B3xvnthQh)5czV{4O$9WQd=<2w1tcsTPoUz)|PW<%hycj?Jkzbwya=mnJMiQ zqFF+V(TYNwqLqYJ_F%uvkbF6s4q6IXQd=-5XbTyYJ(GTE5)5T*aWK?*HO9~uu7wy< z8OJ%&P9a)VXfaw%Xj8PhP>kaml2M~pk$gFt4O$9WQll^+G>VMasCcYu`sacglaljw zhOucKX{Hc;L1;1hqR^&jU7>0Uwq#|j)&ebsEU77&pEQMx*c9kj45hZ%q55{MDPjvT z)J$W``qB>eZ-f@34TY)=>q)*G%>^xmEU68cbF_gB#|E9dHT`i>tr78jnPqI)RN5&- zn+YvOn+t7WVzix5 zwP9Yd^{%;YgaO=i#zk6D_8uf7^MPynYQ~0MX{Qh!EwmVgLYtyvgknvPBvZk) zL|b%}gchS0gf>Ob3sv>cO1>OD16m4MQuUZiR8K~%9)4&HTL=1q8||Wf8&8Y_ zUl$1BPueL&{}ft`-V@psy)P7V;a`$bqy8cJa`Y}}DP&2F!o;OfWW+|rm`820 zLv>G$MT+eiU%zB*`j0eIh&~dEJwBmo!iSPCNB;&bg)FHFnArdPCwUy!q_d_s%YdZF?bWN8`pNBqb4lT!rN+wo$Zldz%I1cxkpCoCj{E`GWl%F=W zv9Y8LNd_%r<3|~i0Rvk!%8(2gqhp3-;s$q28hl;pdj zAQ> zP8pJkEqNxfdPPuGx~wtw6XML z+K^;oy|%-aQ@z+Xr{3u#IPqs1{cFaxB?EO>vsImBz*swGNCph7VtRyR;s$R^Cg;l9 z;40eSs-{8gucP6n%9@~@2{>_8i)6q+AXbKCz(6!qhGf7%C{l)Gz`(k#49R%jSYVNR zn>}v>#+DFKqu3UN8-fffZB+C;Z`Xq7{TKfiq3~b{&%J~=vN&tlF-KwH=sAy%avY7^ z(ajZ1`%<+PNi4h}5eAhI$3&Z;W-vV3lq6(f=1xJS7m}{#&gM$QLnvEt3|Xa)lBm}P ztH*)|&hMc!2sgq}r{g^Lg&l;f)!b9?z4;xb%5gZ-SmV>A<58a0gL_)@t0y2kt6B0h zntE{CXny5Hu;fXc9^7%7zu+Vkt0yBF(%OR^*!hlIl~X7?m9hm3k#@le_QlL`9mSs4 zaI6;Pu*$c1>}g0kiq%CRBWBNRZS5%rFyeF+VFdFqq6I{fj$-8uNGfL{84@fw3nbbM z>d|4FlY}hv494LL&W5ad4iaUyiv87d!7%1_!0)b>&Xx+sr)}okEcbkJr)%Zv1t|0k zhuX?w7#i0aiy zyM}ZQseG52!JUIE*B~=%y*$P-T=mk>WxUdhIJ0Be2McCF$uS(Aza<16O_Lr&pRa>kLSE3bC+1j3)9Dp-hMZLkZbh|dTO8+= zMy-hHD7tg=lAi3}VZl{nZHZHM~C!LESMtIYV_T>%}W zpsOqBC0$xZ+;JT2s@z4Dok2&Z7#f5$*Gz~e%$3SqDC+9y=$JV%=;)~4gQKmvK}e&) zz8CD53(LKX*2sxx5$D~4A3|2W4@oSeciPT^A5r#Wk%`auBin;(UvmmhbE{OX@FzH| zf~hy7`k>TJ4+f z<5(gq1&r|Gew&#CbD!bKmw$*yHy+|=MO*)dSdGmNG)~?b)yHAz%X7NQW+AH6 zbv>_Qh;#@$$_svmI!9;EVzyEFxpWz`gI^xqH6oa}R2K|cC^|+|o?vUk)9e;roXGPH z>+Ow>f_saQ>S&4Ldx>QY|d)N?A=M_5nsk^%=kEFQ^1%_>cni;OJcT6 zX2d~GMD1P^v$Gb?#sKI6#=;yiTP*4oCuWOIUruuFW@EQ**q~@9qfwsM1A8RV)jOKP-8X)jM=14%oYdT zm`y{2kZGQnO>={gX*y;rUuO~Log1@NrX9(4+?Xvs+jw^&yq}3+XsbAp@+T0wF*`jd ztYTueoJ|kQtf79!Y-#5aVe!B?W`7O&Akf<5&`#=^S@Ij#J!W&8&^t zqB74AGiEm!VvX7T8)7v!JJ9Q=V|JsiGclVQY|Ks%0^2Y#o7p60iz{*(red~b*T(EZ zpfMZw{8BNSKhO9vV(*_o5k`}ky$G?i8|CkVW@Gky;1$v_dmhY7#cWItZ$pXMdqLDz znz>yN?t@$q?u&GI5bg(3-2i}gMD>>#?5<*GvGNo$LplrG{%o7|1-YJK?VvT($7NV+%gjd)c0>77la2Ph3^N0RM9)j@SU~c`ynLqiwF9?iSeCW_)g;Z&MLWl7u}*X<-29) z^Zh`ym-78zm={T0?u&9)( zgOJ3+v$MihM|eYa6X%ByF{#<4{=KUA@mrR<+fT1ac0;C{H3|3pQtI` zB{~d77{tkJUx+i&kwu&}f^4G$L7Ydy3S%eEs(6=(bJ8GA=?sdrE972HF2u=mlZdmI zRDQrj#JMTqj_wjsK*UMvAWqgx5T~42IMMYqV-Fa_nYC~>Mmc36PS|Db5~+plQ3SQd zLLkn~XrUrb3WzvK9mFXXx`S9C1u8wY_nH>ZP&I4L0FBy|v{IOrly8XAO5&0N9Ncl})=nj3^n(}+{~ z9K;~xymJw!%CsZdj*B?O=lkJkdY8ynad4i6au1?{S(%dw#3}}H%Gva=97Fv?oYKxC z!s3BIoWDjP3Xu;&O{LZnIYb#!=g~xsW66bJ5*RzjSs$#KzrkVYT_RDLXNZY78w~NY z01-jhzads*vje>aW=!?BFjRMm8g-pPoYY_uXZp-w8wPPQn;=ecMHUJm&X?Gl>=Ida zOXYXqPWR$HqQ?#1TnRD1Q!tYzZzJ~q7}@V(mO_-^&F!#^b)$S3=p2Vnz;z#ZkK_Mn zvR~0;XZ>T zWT6IhkvU+{#mWN!UA9^ZbY<8Vp_j4Em*(~Xy1oS?4CrFEFVL0f$bzmKLAKF>fUYxP zMJ?#!EUyJ!G$05m%d^eLg^8f+9Maz7krH%mX+akS1YM*K=wiJDbn&d8iI}Nt01Ysp zD{J9w41o5(vG4{kmT_xNEo_g@g<4}FK-X3lbWuRiMe2YqvCsuwI%U(gl4n2{vkB-* z498SI3xYhL>pUE1K$qzH0es5?y41n02-h94g8*GyThK)TK^Lh5y2L>jbkWctWSR$b z(cB98VvEX9%Fz1hFFcw z4)hjj(AB8x4CtZ;3%b&Sz%~r%Vm1L?;)*O3DbQuv26V-kYY70=zVLA-@Q#bQ{s!Db z%yoS!jk&gNQOtEH=p4vbG570;x$XgP3I02niz`+NbMe01MzYs)0Yq4Bu>QuFtM`I| zGXl0wZ5m(#cGf}-*p7uc0=8P%9$gK!#zF+_ZEe7&fB~D-3D{zx8?bfCrfnt91Z-xL zfSnkQseT0nc>?x#ahwU*qASm8&Sz=V!LH~U)HevZoL_P>Lm0B9Gl_7OBU`zJ?8Z({atgunQ7Cm`}m;t-N5Np8h-w>;@*@4ak z>_%N@0=CTT>EMq zK1*{wgmq)~O%P%UxS1qmp*ChymW|oenU2|5=u$D8wVHc^mO3$86ntti`}=4NUfeh`>y%B~N}h??%qB5AF&tAJ3v;fR zeJ74HFShh*`!X)76;v!O+$l_X`Yx(bAym+I%X?h z$B6UJjoB*Gj$}J-%od+*yaVcyTL!jDgP5Hj6jm`Yn`W4pP5q47(vHS#9vH{$+mH`J zO{LZn3G2#`IvTUksTlVK3v#*1BshEw);cYC}*>^*v&y(DXToC>cDV`^}52U&g zE`CN-e~(!r&(iz>89qz%3aELOhPClL$&X0nZHIiGWCxs=e3ph>JWoQhw7hQoEDftb z$seHv&(gdGQs-G3(Je~xJjtJMoZcX^?B>er;4bS~ntRY*q4H-Q$!BR=yq6N+e+&_P zKOhJ(jp6$Pl0GQuLy|r$DSC^2@>7s1dTkkfLapeNB_#4%MfS;#rccO4pO83x!YaA? zM0AVNRG(OOs!zV{wO(PLFS_pg$@4`xf89RO=ZoMO0u+`2GanvDE(m{y6u$o)q`Jv6 zeP?a>{sf7<(UHFIWPB$VzLPkUjub?C##n{FTE$FZ<-wZy^Lkz*&bLWnpHRy}d}8#q@eJk!{78 zo;rh&t;C$^K=MKOg2TZo1 zNDG}CeaWxuXs7e*Iu_+H`|CQjT#or;;z;J0Pqb_JJG6;Df0-m?q2>yN%+wW#bV~=i zCG~7ontMJvjL%lFa=t4NsXqi-`D~S~mbwDTu+7ClnrnuQn&M}xu&EzkfiT$Tm8VD-g^;pi1!=XH~pw$Qfy_KoXI5h0fMIS0Fq$c?I$+sk{c3S0FoMX)(`M zQNSw@Qs)YU^^z+PIrXr>>xsx7FjpX13uj}LQx@j90#OUwBSiJsLR^9DLJRfTDhhZ7 zLh4+Bh=uMIh)&tGt>l?25N4Arki>9IbzqZRS0KO}@fC>Z0=~<2n@=6=ihx662XO_m zD;?Blt0>?V2&r=gA`ZG&AT%@xnVPxMgt=0g3q^hX0*~efA=C5~i1ImzLCAUMUV*4g zJCg0VS0Li^{qQ-xYiO%9xB^KJ3agka5ILKGlrU?kpI0E#&LhI&fw%(s3kngCBMjD5 zY5@nKmNKLcqPbDySaKnle74Ft&iVl8W`1<=SLDpjvH1m_sLV6OyaH)3#1P>Mq<=%K z#%2fls~G6&-(aXdTh*xR%oPYV*ej6qAg~Q{1;T7{1tPAfTmAAnC z+@7s^4#pKKZ%dQ%Y}H*@A%Uo{9K8+^MjTxdpJ2&+{p>_<|Z#XBtglh9>wz(F7(`3QbT?bNUDSvZnhCOUJ{zJZR!S zX*7|*20H1$1{O1rAP8xq0~=V(9P^1_!{4C~UHJ}4$U+TlAalU5ft3dU8*H@{Y{;-p z1W$AOfDJesV%WfJU$7z3k%bL4f^4G$fer7%idxvfsaFddXh0BBmIpTQ)FN#7C#k&F zov>jy#w>j#n*zcHQU^A$UIH8BjKX=U=NAnyupw)q!Uo5}8*oA_$3L7XOY#?=DgIMUo2A#5LTgfx9f!PE$B!*+E{{w=?22uw$h=VR{prJv?G!JZ`xk1P@4I7lNW5jvq!UmOTN3tCk zHi*wQWi2L0r&jFp|@P{IQGCO#O!l8)U7>=LU-$0xcl(MPK7a_b>m!i5 z_ZmNhFvblv&j&4q5G%mPBq0m6_Zlg)xIv!}qRtpM{9cg6f536~99XNt@AgH(sc`92 z`Q1KVhd?iUl8}X(kWJ=*LpCc9AY|KWsgRvvo9LP5_7SrGiw-sS8ky}YWG6bZA-hJ9 zZFC?Z8*e;|mtoA;_)4Gipf+UFfFPtSPsrx1X2@=0E%{UmL-yBg$fkfHo74%}te1pr znao&mb!yW96SA`w&c-a%Sz|2B5wg|7_6YBJi!DUR-qVI`3K+6UoscaSx*=PqY}!`x zOvq+73E7F^nCf_6R<4lUjN?qm7F~JPbB1hnuq$doeKQ0I*?ZZLO#wqTsS~orK{sU6 zP<+S{X`YZxbMeVWr0I~Ye4Ry{cW%g5nRX=GaYMHFd_M*_eWh=!Gzi)0L17gWvgK@g zSY{3NGh|CU8nSs{9J28?K)9o+)Y6cx45{;IqQAu@pHmyW~BEF5OJ7_4)B7++W!ZpA|(8-x8H{h@|{#6YjONgYdIYxW@(r zsP`QKpya+IoQm%|QWNgA;AN0FN86C{Ud!I-ao%?%7x!97mXn*z?zJHN^1dTh zlzR6aMYkx$y%yjLgMuu(xq>hh-*;T(wVrS9v0Z#sa*vHx75HXO#V$?W&(IH>OF!Th ze(Z;x@G5WQ@bXtl%Sh1!BS5M+4n2ScTzdeMM|uFWJnjMNKo5*0k#9z^2lg>NKrVWK zWN8_AN#6#>D(C@BGxh+cQN11z-J%pdfJkF{z_Oe9nos(r?=d*pYdzEU!3CEjeb9*( z3l*#jF@D2BVftVcM0&3c@6kjb@GDjDejG>@x9OMRJ!`}J@g(xKDtf=K@t$0GPvUsb zD!IHD-J&$*y=5Ekm+=mV(P%H_`>a;agJ%fLcmXJ}>ogF9U4IF@d?>K;$N0Zm3zwit z5XRWm{XOAihwt8lo8s`@-xGE_eE0W+Qysqhd%|AyecksYh!AchFHyK5yBoIx)FMbv zCka_t3yX5i?+GckzoZ>3q!5Ul`Kun4`Ziq{A^se_=>h zW6tjdvM&#g3)yK;<`;(IYQHx2@HOT1Z9;ts1HF(RY!wcS_WaaF2 zOB>&rxdPU#D*cb&5i0eEKr8Q1+G?rmmJHimLZrE-@2DxhLs@|l=DLMhy>1zVcZ3eo zcZ3dh8U%R1gjQWh2k?&2M0qU8Hfs1Fm$KevNS1@*%R!TOgbvEQBXkz5Fm^iEEj$^_ zb>cMQQ+E7frjbf==^}(4n0}E8j&?UKV-{+tPQ0azzU|hD3NHFc##ANIQoFmHn_F zo2^C)y09pdI@c|%hu4l?2Ti(M@P~-Hc(4b|bxYR5*>X4!FcxANinkg&Iy>|op?q2B zO==lks~xz{Z!({rEgxYsS>v&H;!KH!4DR&lNt>;-{tHKqrJRm^pZoK1S&LjAmMk#+z_ zFzBeBRA?gbKN2{dqn(>(DWd%4RhVXEU#Ne@)xA3T-!E1Q4Iq}*WAO^2JgN6=+9RbdbHL+mgZS4@&;x#9t z#zOb~46@#~;`EAzSjgfxMCi-M*MV9r9$z2{S*X3cNm&+5tqEQXc@#|1zL=vRXf1GD z5JWwhH&Kaw{Q^NF2K5Po*t!Et;x|zx{yVY+vd{-Y7V(84`+p2sz6g6T6zh_NEYv_2 zG6xJB3i=2^wEP8&@00UXF7AjkMR}hK>ZXqz8d* z7|6nG0$IcrStwGF#j*`#iSLc#+g0-Jg#AHXys|tn!;gVGUIT?F!7HZ$M|7inGiVmC z{F4|XjaOEKZ7IC+A&%Kn_Lnw>2zX_45QA4PK||{TuRKA_LS5me5XPwEV+QS`5n=I) z_styspusV}A&xOGLf;BCv1n{f60%SWRVcGih0UrVF)(3+YC_CWsImp>xlo0AntNvB z=;V!1{f8=FqIW03YuOLL`5|WSvt%2Xgr41&BxIpy)DYNy zHf=u#i8AXT5BGyA(n%e_oAQu%yjenxS>)082UVngyjfzarI1I4Z9qVpYx>UJEZGu9 z805ihUpILZ9od__HG*uT1G&k&9jq{R;)IEB@^U8DA`co6gp|3+quvKqczW_C@Ajm< zn;_*)-a{<%pnx}dNgd?DdcaWE$%xAd2IQfq8x1hXBWvO8WP%tA9pq8(gDPrad$a@8 z8Vhlgw`!3G1-!{i>L3rX(7nm4Q#NfYc?Nkfn;?(Ga7^_tLy!k~?12pUuO~L zor^qFrX9(4T;w4>+o&BQ4_l=H@<dL)uZ~!2^LjI&hsF%|kv2 zHI-V5Jd`1I9!=CZmc(W{$5|gN^5{ep>CF;RnP-TJJQ@tKB9HzJu^O8l=tD7Ms$DQt zALnk=bq0A*gT2X{9t5^wkO#BLO=FkK+D&{Ck`5KOKQ3^FT_k00IfBGmzEIbuw7jTQB z6k7N{MJap20QB`$MO4%Jo7?i?nUnnKf zkwqyrf^4G$K`DE~3Z08HcMLRR%*L5ts*J=b8tE}?J_wnwi~@JTXe8A!NOZ8OV_6=D zr02^Rw#s-GCm=EEaN@=oi1WO1CFY(ZQYH9O2V{9L5SIyJp#4aDcScGK)MGIa1;jw4 z4hCYq1Ov$l4Gg5GHytz>C~Ki&AngIMFb4)w3)`dpq1IRk479*vAPR_qNF59$7P=Tn zPl&Xwh z7F_5Jqx7J#iorlM!|c9LKQWNBqZo(>#u#W{IMg+%OV7d4`x6sKF2`2I}7stFhUE&S0QMU1u;5HCPOk9t5^wFc7l|1`=0fp-5pM z%dWvd?;8yC)eHtY3e%GqX!TNh|K%ktal}9$gJv<%#=tk*r}tmDW~DHY-GBK8L|9g< zAa(a&4u&v>E$;ryAr9YSAai03!Xg}3s=+!vsEK7`0ZGV0?fwg8S*$}tVjQDbhbF`v zMK<%nagh!6WPVovsqMdrJ*T?JhW7kVkjBHqW0LaExOCg&K z+klKT*GwmO|K(5^VUP{8eIc7fM;6)C2(pb11lb$`D;$7fK90wkSc^SqKoC-v2Yc}J zB=$IpwD%yS#2$xR>_Gvs2dRTSSTDgIa)JSS=;=lS4ED%csMy1?FbDQf3)`ckq1IRk z>~Vy}9uyFJkUH2yEOfDlPT91r>;}H1SVn+b+9Yy zMSbHSu*Wwo_Mm{+gVezu;-HH?Xed4egESBJpt<-&2hue5P`-{4=bei^RHhxtc3kWs zKHIn*V-H)U0rp4_3ac3GK{E{YpnhTxX-BaK4~((Lk;vmaCXz}m#U9F#I*L8&nCTp6 zeW<}6k6G*?dh!f0u}6a;R_xKgAy#9v1D(Mhjk?ZY4{EU3BRvRg!(b0)6YL?b$U>3A z9+q8$JwD_87p_?;>~SwJi|)Tf5CMA}2V$_tuE0P4#s5XvgLx2`2Oo)nFoqH5@)|w& ze#(iciRIxWl8}YkAI(u_F$UFZgK0!@JdSb^1#30;+<~J%!CuMF=*vlf4)GlwGED1& zD9p1Z4x0L`Z{3^>ztCZ)kc2GM+`1uiz|et}2LK&xwG?#7uuT+CbNhe}C%^~;9hmJ4 zIwU%>(4j_(gbt^X_8xm|@Z&Kp1nJ&S07feu*<6*@Q;=70`rVSBU)YK?_}4o6w&KmnlxsRJFvLKiydlug@8 zo`DX`CeR@<98-NE1bLvt={U|n2ho)$t`It?gI&=XsBatubifK0Kj%sTp#!M{9mGKw zI?zyj$OLH~=sP?p6MG$h6pdPjyP#2nqXI1d~bWl&FZ z&pV$9$`E@_<-Wz|k21auztDvjl7uYO+@dc^)uDhGhSb3@Vxfy+^n^&;N}j*X>W zXE2QD$`jy-VbsB{=yKFI4g$kO7Q;|L3`6Q*7;(_WFf=p>ndZSTG&cyDrZJ52b&NPm zT@0f#?MSxcVi@t+#{U?@*eVS$OnOjQ#b6kkVK5B!6T?V5ieY$QjA1TD9-nrSRB9=P zQHIocRBpZ0G1EED`cQ*moLeuVC(jTQ!!#IT#W4LFVl_59&>0NVsOt=dp$3a#(u2S@ z42EGg!7$>AEEFjWW7)MB=1zlQ#$qXSF$}+%N(}Q}2E$woY(WgeXHBvgrV03@D}C>U zi&hH5*!_+2$5jy4Vi)U2t4v z!dlHerJwKSCzg!!LB$4J088HMdU4956Cr#$pEwh#g2B?7(^nc98Q1*g?-C8ep(P)+}t9mGNxJLr^6+e)6n4$LOlAu$|N{d*AP+5fl&#~JJ(y7B}TVh44wE4mf+ zjf21r$64$^0kH$AgB`>{7dz0Hk@XH+Re>{l)|H8eKh8V#JTb+kAuwcc% ztkK`|-VNPYB<>*zS*QgNlvx0wFGslpyflEg6C4*nuvT;W-NgNWBx3~dN9qR3L(6`% z2u_HFzkR)WG262#C2XQR>%_6LvMI1TaEMlvr5J!e>f`6K8 zrj`4!#$7PNAP!~~airfYlITF#y#%9@yji41kZsgd0J)U)E<>`+H;dc{D~z2E;@}*u zMI1B$U)7@B4&tcyW)Yr~{F(0kq`kKx<W`2i>3P(olRB z3aObZxC*TQW)Yf;Z!#fG|4di;I!2s#F5*y`b|l+z5r_C}qjiipY?TIxBRwdrVh{(- zFo=Wti8!PkMI1a3h@%brd(n@P4?<0)mLd*iNF7BSb;@*@4ddOt(?j8N@*i_Gh~3L0}sOaWG57A#WBDS7f0`{Y=-g<2Q@M zzm<8=>{TqE*{gURF`s)CS7-Jrcprp&6$gQ4_bP4&??L<@4LM}I-@+v;^*h~vK(2TL z(Uo}PryvGzoDUmTN4t;U|A)XELHG!S@m_^}PSl(~4fiS@M@_5_KO+fQsJ*X3Sr%$6 z0WXFc`U_o}5OaPn?@xOa92b00Pjk<`pKSNy*(~_b-{VT_ry>Z&_f>+BCK7UpssA5< z96yIW=;m`swPB=gg zJ^g5afgD*26>>Nh=71b(;jrjws5KS>a^OseZ;((x$U*8r4zbXM96DvwwvuNc2eS#} zNDRkR{{;kjAjdN}&Oi>)l_wr?lS3UG9zBct#z8=iQ!M15fRKaKfgIwX3pr?L5HigJ zIcRPWGEGAcL=uob{@eR zsm8~UBjBlz!N4z5`#%rP7Ct>oPx&q0J~@*;@A9M8g*!(m4OZLcMm<5v*In4{*q z3BQ35E5L6_LKbRwFetOILcg0pooNv90yr*+V66tnA?n`i1^S;C@q`l80<$VdvmiYan6!5+TsS~nU58&fE zSq5b?BV_B;rU52oXD!r_?O5o9?0T=%Pz&3mSE1Hei2D)?ZOEp8_a#W3kS!Lv_a$`7 zrfnt9gluM$kewKgss4Ki@`UU^;y4qsMOSt`ulGs~b+9XX4fTzKxG(W78?q_jeF;)0 zWQ&9DeF++huNoq)3E3ST9en?2hx7hXnj3^n)AuEmuVch{=Z0*RX-BdhH)M;?Hr&M_ z+g521veSdYDkfyp3=^`cpCMb?(U8pp_EFAyR2(-y{cni;OJcT6X2fir+BCq#?5u?vvmFa_#B8;&J^DYW zH5MXfFS0S40>*4oCuWOIUrusV&^EiIxn-; z!LH~%)He6op29V5;=H)g9$JCg0V zFtT#%vxK$Lx2J4?<0)md0#lNF9yYb*4oCuXx= z60>D8BWCN=rU52qXD!s2?O2#2W~+tmQPEn6n0=;=*%UBllR7b5EOcYGPT91rF>Qb%KU9W$NdtPhQ1w&=+-#EjVuhFD{E|AttN%?@-XW;g0O z6SJwo#_aSUuniNlnN4E0xFQQhDrQ^u=N_}UXw`|?&9EFXdk{$7nB59t-IzTDLM#D8 zNkSHCV>V^km`$DOnB4}B8?#xfxo4C1I@j5v;8Tm)?Pv^M3?m6ysEOHR4mf7B@&IDC zt+syP&DY1-@O_#L+l0?Fw~v@T7)F?w&1_#WJJFGi*)@V}qXUWA9k9aK>BMZ#gW8x) z1A>sUJTaTInlXDgX>SWs#%#PiJl-3pfH9lYiP@}|#B7<&h}k-|X@H5@Sqn90I~L}M z*=k{XREAn(A!7D9HfB@6m`&=$Y_ZUd**ay@wvuOJHnU00P7KFX?}Q*v%pQT`Ow1Nt zc@}iWY;~|J8j1SGLB#BHZOo>CF`Lwh+2WuZvuS7$GR+gSX)Zn}iZmUwm9JyOdFRG# zm1#$^9XDo+&otT#%vxK$LucT@yS$4rIyBQ zWk?;3*>%ixjrBk11{<@}gTOXS%w{%; z+2V>U6seeP*`IsN=Az}q>{jnp+za1Y?q`pJ2;Y&d2H_aw@Euu6$4NR~(g~7IlynkO zd}VerNEPo(!dGS|V(-7J*jcPhLS_g)5IY%k))#^i7*p!TS7xV>^o~Z#ugso@vzA{O zCKt~Dkt{856MtiuRiLCBO7M-{sUU-1UcNM9rPh|2rIzXynDH-lHSq&zqFa>WE3?yZ zoZf)2?B>dH;7-RwgyZlWpm(X)daeD&?#*{3-`J&Hh05}J?AVp{JHy&H-4N+_hNmHi zkAF(KJW}*Q1*D2+0+!JS)PX)&fuwgTQuYD993g!`F8YAP=>t~D)d!+ml&1Q?vNL^9 z_dCP1tELYyCJ0#5A<{mWiChrQl5|C+=!2C&s^}~9K?NNs^I!#JI1i?Snt4DS=!2C> zdS@VIA6#JifL!ze$W~S4=lU6vJ$w-JgD0T zw5w2AS&tpNvVM14`(QRi=mUIrdk%6zxT>V9NxC{x^u!tvw#)1R>Oc>CiKKUJr0jujn;sw+JwW300ITHc0nsf=Q$1kWdFKM{a{8d?A((pF z2Xi4pA8Z$dfYIoK4Uoe74MD2gEz^6}hW8th^sa}L-UA27YCtZ$Cvm)Im0aG7Zc&=@ z-m+8Uf2`NK(5{DPEl$=$TIKlej{n9G>G*Go96mH8>E=k$16zPpasDpj44@A5z?LMv zn;>Nm-~vE;fL!zdiPHnDlB)+qwiUR-mQ_+`|lX<$%XeMj`ysR%X`r+N>kojcE0haRW-hAJe&uS`o05l_z(+H z_`VZJb$ju>5gK4^`2H1=-tCdn_lu41d|x&i5Z$5_zFRb4*(MS$j@JbAMOl@TCArcSDLE_!>xchh_Evb)W}!C+Xbb;B z)dQkil%{&Xvh!jA+U4|t&VB8JJs{HY-xE2!(j6(h-y5X5<1)QxZFs*AN$=N@(tG?w zPP``<-jg`qvq~=SMYkwTd2iYI#-CQz@qJ&2)c5_7!wdM4!uJC~syi*ych-jQ-yrGT z4=H`W%=k_&d?#^yXO&#Oi*8Yx^4+rY`A)0q_iZ$c;l=Do;ro1$>Q|QOJ8Q%D zLrHoMMoQl=H@=e#-$@+bStXb6qFa=ve7Ed;zSF8YzV|?+z8{7hUL}kaz8?Wn-Fcb5 zvo?JHCQ0uCr1TwEF*4`Lh3_Pe@2rx`chN0MQ@&evKHq6o%6GnpA2<%!|44|ipW6#! z_H%2$gLpKA@qVuTeHC63?eGu4zH9uBTx@5Rsttd4bu4OPPw6<4kcHacT~TH?f%R8b zG$h^xW`k-%%=x|i?kd7D?zS-XWWIwa_W3jtzmaX5)-wdZ;I5v4?5t+V&uHrD0E<80 zY+Eo9NzWpBcM@{(TXXeyS7MLsDYy14H!QZNulMjLUE;hJNd|nOmzNS`CQW zZcJNk!Zv%vX|Az^nyR>lXj?7_kAV?pW188%Hl`CD*^TKMLAKF>Y)qdBD~z4a#x!T5 z*_f8jph&wS2q~-PcmRy2CpV@~A?-a1DL1BZhdSPvrhpsMq|U}P>m?i0a)RMp*VBzX zU^b?+7S2ZhrYwZrc-_s7NW1Diw5=AlN2fxqu@D>6a4r6w6$RXwCUrKZ#X@&uTBmH< zR`SfoG_%RZbYeKB`biMv*_d94Kg~KF?}^1yer_(PbuKW zG^w*OEe^UH(=-%sG)8LX3Vy&+|2v2@7q8w$n%cnO_(`ge%dX1@(eLIrW*{gZcO)Yh}GEaKz|oArn)K&)$brmCp?_^ zoa#EWF-;A2V>&$uY{P6!Gn;Hoiz~8FU}JhUwkF>}wCtA3>fmCpEdFix6PU#NV(;TK z`VJ!3tU_fCZIj#$pc&h&@Oh?7?~o_K*_{*h5b@8ep(T)>&=i*n@`RO~gp^U=Ny$SLPy3V-Mx)7;)aY*h6L7 zk!;7s9^$i&+cEaART^NA^q{bc!5%cjU=QkN0F`zWd+@**dwd&tyz^U9sioLM8B#~F zM;$YrI)go^!D5f}Ag~RCJ(x|fhqxjO zMGAXZ_UDZ~xMroW2fx9r`yQ7-1nhAoh`}DU-(bEB!oIM_-iGi-S7>EL5AW{bdv0j3KL9MY67zh>P{TB*|fk+(;Bo?|DNKc5gt>hUD#B73r62oyK z-2eeF(Brs-Z1@f4n{k}MK%y&8fFuS|2fL#0qrPzv7zle(@%{@1#6YAD1`-Ed3`9fm zvRkBiFc8fRLZ)d9q3AK$cyDf!;U!FQ3sjn7L-9Fc7~3pcv>D zh=74^12Gt=_B)6_fH1~D7VDT3sNp@HJ5dwM!(AjH3$+jWQ)V%ZA{aK9#w)jjjy5N=M3q_)vo_^N1ZtjL(=&*Z8LKbSaPskiFFk$5Z z025nneRumL!!{Tp&Fur2+yNsDFk!YYV3O#_0+Sj+w$XtAlY3!>vD1MLoN~3$fd=5! z*R(qabl}-V=Qpn%YU)PWA-pbH&nDBfC&G!Jy3xk1P@4IPxPW5jvq zLI;&;N3tCkI*89U?8eZ+R%rko(u2Y(20G9T10ATJ&_UW!=)ePG=x`tML8z(JQs|%z zsiV-Lj+xGJ)`uGC;Cu%_^yC?0LWc%Jtk9uvUf7M{|RaY5Kjq%GWXC zymLW^%CsZdjte@(XB)6%&|#}I03GQ;VHE>9XodkD)KAbM?I`HrfdCzAVTUhz68Rw1 zRB9>cP=?e|&{4-s=Q!(w1s!Xn2{Q-Geue1CGsFZP4Te}jNB@Rcjm-`;jG0kg2ZrK# z5&Vd|QP&yJK@Il3yy-z;8wPYROVA;o0uWbZp}>22zrfbyc@fKQseBP!=XnuCF2Nk1 z(R+EhW)&*yYMXpsgzx3WZ%(itJp&Oi$FD#P=6Dviq~FW?9E36EsCh5%ix6T3_%%t$ zLhY6WWfoTGdwHod4I-Wg#|06r)!=NWQz6?{ONHzV+eFVaw~vth0*o*ro7ukh2@)OIeS#W6w$Xv?6TAc~ zYC|^XL2byU0YOMv)d|`4-pk8b&3%I3llEdp%Ra$vHe^%4eF9P^WV2qfPau;Sr-)8% z8el?p)Kg~KPjH6~*%WY}fYb@u;-I@vKtu7~ zTBJ20yN~zs(%c|qn%*Z+zK#*+og1=MrX9(4+>k9k+i(|$Y+I#4$W9LmtC)~YGfc>) zeuivmM?*Fbj6?Rz$OoaOQcFX&GNg`%>^f#T$5|g5g>2E2XNVcH8w|0A?EVe08k-$x zH)P|zyp6ifgluZC`vmDhU>hc6Gn?!ah%2&CV4uK-Y|BnUcCt@UFfsc8P)7cD1d>+ebDNzDEuMEGsZ zPC@u5ZN&k!#zp!}&q`C{P8AnvVgn%!J5^eI2Kp+XuAE=>z?Jz4pPo5TOt7`}+Sw4sSM<^gT)6M~a^K z7fAK1%j^kiLQi}^()$mj?1{TgPmqhAAaQzvRdV%&=oY1^p0I4w6U+F0J*{&3L4RMV z{qS#y^tWdJK@M-NL<-;k3sT)}nZC0&d|yh^`yo>Levk2;T=-7n_|7W1d>7rKH08Tx zr+lyb+j3gv_^xZg_Ocdy43VA(eu2IRk`|Dn2Z|uouSpMVijzpzg3XZOTCh2&SqrEG zJ3r&($6YTvL%#YE!YaA&RQV4MJak1iL7Aky(~K`sbek;3~nkm~Ns^q#fh{UDOwW~3bd9~$q; zh4&X2aKx%BuDs%$mFLV}3k9#q zI|%9d`ytjGgUtS(_rWye=N;B_z#;oB;1M63;dvho18;|U-ajw%JY>D@O?KF9L(t;o zo>$oz<@FD$?#YAkhw$d_H1VoItqfEj`g6Py8qoGe5o@f6zVU8Cgxd=TZh^G|9Z8CE4n38wa2&SVX|9#1CDd_={ek|#)%8SRed20pFPaWzNrw%Wd zyfvmCIkx1j)^+UYl6P*I`u)+zj_&k=iMx$$^LCl|{M3?ngiq<5kxU;S%j175>9@L% z9o^lvvv zZ8-A}cAno|@>Uso?C3?_Eb;CVIexvaeaGMKtvHVUzSPOq&qCdw2xqAG&vC=co!*GC zyMe#_SlaLojv4AL8N+rbkC+F|Ey2FyhkDxugE4S7mj}0YddH01ZEUCaw-KzhLf6xi zOWw!hm>%!b&dsFV5t2SXhP`q5C?3DPq=O`#D(Tut+q@UXZ91mYyLH@jq*sk2=U8xt zdKbdBlJ|<}oZfXQ`0W#(pW5dAZ4A>FN3!1@E70ceNn7WSV*UW}@z5!Qrh-CG_#GR)g<5=+CpnckJCvObRF zxw5j9*29r3Z6Kv~Q`$&Me?dLUHj~nxMz*DtmNO;bGaNAtCAP4Kv^PZB>+o>ug7;Tb zs*3F8i9E8?J6vRYNxe=l6j>-oc6q0ZYX2KmeK)IZ#8eMl&+T+*7Ulibh{k+ z1#gyLz!;6d&;2g)*7Meq(mbH(i?FY?j+A!7VseqUm-j^}orG2DBJTk2OHz6ii_b+~ z)mu+W_llO|ybYxEW#I6OybHXIw1lUdFY>PSHjxtE)`ZgC-eywbZrw%b%`K#~x@dXS z+e%6|ik2t6ZKU)sY42HYJ1NZ(J74$aN$C_h@&j)NDIrcnXRE)Hln#>?I{clbw2QPb z%HLH=M~lu0{%%rwO=PS3yGvn($!M>hQE)L&>Y%}{Qaba#1QTl;@upTLvJ>*xV^q!QS^ADBMA!5s)`~_0_rg;0lf4Gz$ z7t5N1Z%XMu(%z`xC@F0uTDtLaV24D%8Uw2%1k*WhX?Z7uD+8(br$SERjv2iHmIUD5e*aD$YVh|W^sdpL7$X@6^s z@0~yFU8MI(`r5GfkiTo_-7UViw4Le4lAqT3Z}5LL6sMneT}Lz0Q5}Pjt}(P7>6;y0 zNKfe)iF8Qk*aqo0McWplc`wPYCi#mbU1Qip)cr*V+np$!$0YSTehAKX9o>)~D5=)k zN2Fth@%Yz`h8Z}fRE7;8`VnBU^~+q$$*-bTLveew@!w{f4?Ru*=$ts6%% z{poO~Cwwlg+aBQP)6@QpNM0X5`&PVh9QQ%VsKw(x6#RGwW{;`Y=Z))HUpQy_)?fda z$*@P;)%m%TjJwXR(GypKv_JhnXWX*SyDvcJr_t6nIoq}AY>XmVGABI>R1c5P>LcoVhaSd-OI z|HzM%w%pZ~s~mN#!~e3ayT{CdU!x~}w%&dAeYj>aUh2!!)3zMY zc#a*hU4j1piYYxa>giVB`?@JDo^Z|hz&k)n$G6-%;YO5t zjO=HS6}+R3>~+Wr-ib!G_QYGq7rjMBw)w<6Q99qq)*Z5cYm;}0DQ!1o818UgV@gkq z-XHfZZZ`FPJ9-%Q^6xUTLf8JS&EEZ{G@@&m*X%uNO8&I_#g5DfEG*O(snA9+1-U-jgGJuiN`)H)XH1c1#_I(nnG{5l3!6q1zihm9p1c zf7QLqgsI+SDIMSPO853C%~Y9x)S%rbO!N4ZCyw-o4c>i1#d}jqi@lGgo-kpCH)6mAy+$=~~F}RE_*C8NwO4T2kVSv?b2S)e{-#pe=FM*%IfO zEpeXN66e_(i5AW*TjI>JCC;ohlOs8^Y>6{VZqY)%WC&-LEpcY?UMT+{!(6f@&K_Ih ze6c0YkfhYa-nAw6?iW?1x1?$HL03afhTdZ1C)fJ13>{+P0s_d%OH&dnZiXTMHrF~W4Vpgb*raq%+X)j-NJ{4onm6f`r1UCE z-%3iu2G5(sdu9Av()1(9&eDR|dBmi1lhPi8j+nGKDgCBx@ucr0r6bzzoy5B({A0ho zIO!@apfqf7Ve+-!yE0q#?6|=jx*WxNcHHQVkdmGqH+qv)=5vg`=N)HC9HZ}h#pR`* z&oR2w+uM{lM)!D+NNKURaP0Dv@AKX6Pg{HLP;BfL^ymw6Lqp7D) ze%l*2Q;*zc@OLJ^>-Cz_xzlc${GNBcDP24GN0a~M{Z~qA=ZD^yS=P?~cvGaLcK*kk zsWP8)_apBfQ{vn$`jb|adOqiFi@(s6ICls8AD9y7Zim0eN_r&cZrOjplsI=s`IVJb z#<@GrUua64yA%C4Oo?-Miofk_J(6>GIsaBu;@n-qA12EkSIl{nX8Q9@iF0=)|0yYP zq@S9+ieH>VEsMRoTi=+xmcP)H7LIM6vYvm3DUE9zJ7q(E_^Nv3qVnofHudM4($dy1 zP1(Y~!jz6GZ!={Z{|Qt2N9!(A=J~72^19eNyLA2Q2rtIfGWlB$@-Z%V@Oz8^LJJ{b|mRH7y z%cjitk29rh2LE76kN=`6EgIfD<#4|!i|u0XiPo`Gj`a67r7foYd`ho>wkhpA_{Ay5 z_-~lfQIH+)50`})=MiKl`UjcPxsaXWUua6#LblL<$CP%5Y>_`s7Td*M4`gTfhe}Cj z-P!(`QquGN9DlKtbk?2YU!gM0EUY$u%Q`ylvfB9bO-WW8{|}}ltBpVR3woriHvaXd zB&&_zB1`>ZZ&CTpDL445n$ptN_ov+CpKnTMcfUF1R{sH0T5<6EQ*QSst*f)(z;bi< z-Ts!Q^m6O)?)&^ZOzG(%mF@@pKbX=Lt+Try^4I*5*86Dcdfh+u_co<%2JhJYnE!|= zoja|k`w9OYQ@VEWaoxZ0H=4_Or+60*f1&khe^XOBcNDP7S0EC1)_$UD&bZ~SLX={~gn8~-I!nh%}7^OrCnNI_Gg(R zTf6sf{e!=nDUInK=KaB6*OYdKEwA_+o6?@J1T^!izmt@XZy5p9{Hni) zDLpvx;g&!8`Z*=T9I1WXo&*IZ}GX9|X+xntzd$h!uU5u1u9~NJ@8f zzvll$ODzj0KhpiW|EMXQKlw?No-(B?Ap5ibqAA@1*`NJav?MLO;r}Hmz0m!JKVp6D zGxq#j{sdEE&%fm_Z%Qvf_O`#0Dg7C;xBWFuY4+ItTmSCQHKp~&4#V?Vo0-y$=%si3 z?M&%T^wK;2E~a$B_&;>N>+fkw|Bt;lfvc+O{>Jw?T;@TzfTDq31rsN{AUF>oppp|R z<{Vt%DkPI|aZ2mrRHl}erao!mlMR-oX7i(kX+2q5T2@wCnD&&VWo4zM_5ZGQ&bjwo z?ge`vv)}u9|3CfgFKe&0_TFpnz4ma1yU*sBQ;1DhVr=IRQl%qyI`#+YF;$bi=Yq6d zjgj|UkX}?{RELYw9yLaFxG24;#>jhqmEKij|{e|Dt10kJJbcpnj2Zu^P)o{UYTmHAdw%mFKH5DzB-$ zM2%5-&E&h(7?sydUaQ2oyeRoWM{H7Dl)O*Xq<)B&52!KfhiLhIHAejqBOg~|)DJQ8 zf7BTDLreKvHAel=QvOAat%;c$*Gm3Fjctx8M$9i$Ye7kv~j@nr@GamuG7-(<;QO)mW>R z`(oS6OVwC%%Y%rm=GY0TysacU$hE`B>Jw6rhy=tAsWFmulx<_2vX1g1HAb>da`}x; zStr@9#z@v#E*|TYb(ZI;F_I<7r*fUL1o^xgBUu-DT#-}OMJ`lhBs0rFGn_KB9IeJk zmMGWGcFGdvLu!m-a_VBItec#z#z@v(p1r~;>n`7+#z@vf?zF}!>mm11VMJ50D0y6PT2st zMvajyT|RK!DNC1+sWFme$bJ6flx4_6)fmY#r5YpI4f2K%r|brKs~RKO5V@v_ zQ#M52uEt0}YBXDh$-C4T$%f0@jZWEcxmJylY=pcu+$kF& z?^0tV%a*rCIAz&#tr{cQNO^0dQ#MlGrN&4$N`8!92vpl;l>CAkBiU$qEAGr`veEJ` zHAb==`LQUcEJuDpjgf4OyqVv&SK4}v{EQkS*^P1y-T>6{yiwk+#z;0+-hgLjnry7R zRgIBsoE(KO&uX%9a=aQN*?4(%C#P(@yjhKrY=XQl#VMO0Kc>b=Hc>v(*D0GQpHgEa zn(FjBU!F&pdT=(ZJjGe zs4+*H;&`=rgT!n^u z;W-`g+qrS(x2AHxW~oLy^%YJ#os@FWa%;TZ{!Hmlhu638>2R{=4kOj{akQ8LZw%6} zY!*P1o->Aq`Zib>_u5fDR6DYHtT8myz&UuUIVctq-;4Q%26JxQs>5x`DzeQ_%|WRb z@m+JSL0x3A4|Va(r&@1CKCX5)l&T=Oe(MzkQ~s2LYyPg9p_q5cHdo)Mi6D-<&F-!G z-*J>$bcW5Ywq1!&ZSs7J`fWn_{I~Y&$H=wzKxG7x|44XtNxefQY9mPFP#wuv4eayY z?DO=NtUgskI?fT%_-Jihs&A9OYSbttDr1?(ngL_bStD0|Xs9+Sl~mf8b?R#z%14>a z{(O!8clCo4HP=V!hD)4c84 zZW^b4DGjaTjgO=%8R||4A3A9Efr07q_iDl zNq@SUgJ+%ntx4x)tar}cHKnCeWbq5HfFrM?vTCs|csEj_k^`l6x0CYm7Pq#fogwv< zv#f^b`Zjn<<+-fJ+eDL6T4iUVwYJlKWq+mgudCFl<6cKCXZIRWSzFKovY?jq5=!5_ zVxl(5YOn{L`3%M^ihBV6i+^zo$RYx}yexz?%v=EoQMi7|5`mxt@vGio{0$Z+yiJ5( zYKu4#hQDDVUNjRS2u6hOMH{gZ@B3_obR&Mo7=v&l!dQfH2;&hZAWTH?7xW}64Csxsc!+Kd z3_u-*#e~9A!ZgM##*vKU87+)Oj58RkMOVBhwH~x2_Aq`AjK{B)>B_$+-!0xDk#s*W zR2*jdBgPYW-j>3gP@M8WZ+j7r5}U-awiEH3gYAomFO3acuk?5_b!r9;L- z|1DB&TmQh1sP2JVq*HNGfhRz>0^L5cUEmDVIw5d}yu4*{V3E8twjcOacv@F2UyL3R zxJjZK&0yThZTP)>Dy|^#d%1n&^uVpG`3&-(BP6e3F?R%3%TL9w3LGlpu3HN{5IYC6 zAw7@U#dhvvI}fm(1>6n?*xF~L=h2=8oT`9R6>zFz);YrE9^tZ%aaqNzS?Bi$^!NJNH`f@3p0ye`Nq5JU02SYhYhyFE_9}>+Yi#ayETY<2%=X*Z z{&{Tw87^xc+n>YspW#x@a4BcFltr9sIj369sSFa0j@6v1fKwSH@+E^rzGUFlDu{J9 za4j})EjDv4f><+%HG^0)f;G3Y=2q5xhBYHtGlDfESaTO!vX3n}z?O94vdVKRUz!KpGhRR*UrVl_U9^J+FSKFqjgWjx4unDHaV)C)71Q^lP5%&BJ1V#XDWt5~`T(h#wOb)IF;9_Acm&SBR4 zg3;T+{=gW_7|Gb2F@~`{V`s*`jA@L+7)LUWXPnGf#8|>u#W;s?K4UfGV#XDWs~FcX zZe-lVxP|da#%CE{WZc8}8siDZ%Z!pY)g_p*Ib#fCPsYiNa~M}JZeiTb_!{Fu#>0%q z8Ba5wWt4m<|47F6jC~nLGLB)iFj^U_80RonGcIOa!MKWX4dX_}O^mx4KVrPh80Jgm z#xS;L?97Mhl~raSr2r##M}K7&kFK%(#W|NyZ(F`xy^19%g)>@gv6L zj29U%GfIABXBcB7V{^tB#ze-RjC~oi7>6;AWVA3^8H*T87^@i1{2iQ?e26h#zfxX2xV7k}^93oBuM~mC8Pr%g^VZK-f zoDNLoJkuES7%hx;#%jieTw)E=n;2^u_b}Emo?sLb*(oua7+W)@GNv)+FDG*?jA@K{j26ZM*0eKS&A5qi z592+A(@D`g`vbb23a!w`PoGY!CiFGE%*li9Oe+F(;id z%lj>{Gb0cDw00KeB ziba{NnT};_4^DhW8q?{FS>X6)TA0pfEaFtvOfO_y3J&_3>4zA%a6WsO-pjZj9P~BQ zCmBzJGa*CrV|y6={fHCGbbHVbWu`No1^P&OKGQ{@-^g6Z^itM&i0Lh?vzO`ppu;jw zGJP6!e1?}lmE!MDHpDXB9`uBabf&XFpHI(cx(IZ;%!N!ZW&MYk-U9mb%)LzS2Q3dg z$+TAhVn8`Mes85aR(91GY?}bI1@UiGM&e02j~5ccBX3>Ye}b5Ez=@|$}%yghAa~wb;<+Y z)Y%R^)ww2wa;^nkmQc%d9iwQnOq@*+O}JdfRB(#Bq%v)9LV4CO)`EYoOC4~gS%fYV za-s=%Yho(!*Tg(vWs)8EQ&J6ZR@YjhyVe2AlSSAvaX#4uw5Oy3!@A`GS9Y_9QMoms zn|H5ax|XpHoORvnm=;F1&A3d&^e{1<%9sbvy*=`nwlmg%$n zOxqc2z&X>WhUr?yI&iFg>zFo0vTrcvMJ^Lx_O%1^`_%xC^{WM1`qu$J?Jt@x6XQ}% zO{v^e&>yCzGM&e02WMECo#`6JT5xL9YMHKM6wQ{2egi}^wwy5)oM#85GM&e02d90y zo#~opPl$h}*8;bto1)lG#=NK}#4G8wOxG#=<|NHyv@_N))-u*HiWa0}Vze{XFxE2G zF^cP0hcT5gPvJy!>5O@dcE&nJ5yPn%QyKFZ?Tj^ywTyL)q9y6)G1?hx7;72p7)2}2 zlQESskI~Lp!&u8`GO=xpd5m_(8pc{iQ)|{?%wx1O)-cvG)-j4UY#XDUv5ry1vOSEc zj5Un4jCG76j&&GQ8EY788S5BDTh?JrWz1u=GuAPR>sf~}l`)Ue&RD}(%UH)K+L3;0 zyN7^w##%-ZPn=XnJ7X=QXwQ5`J7X=Q=)inNJ7X=Q=*WCVJ7X=Q=)`OLXRKuuiOgrTGuASSB<3^P8EY9uSLQR?8EY9u zGV>YjjJ1p+h53wj#-pN*)L)t-Js>?NeIdzmE4hz6Op^?lR#w6Bj}3%>-v0emqZTRx~q5{X43#xr}FdUU;75jo+mQ; z;)AFSc&G50mYaZIGfr#u2o1GfBkroW6J{>7N%z?QK@Pi1}!uGc%QJ_lz{ zYx>RnPDUlwH>{I+9qGTwnipe!0_~o&qFLVZBBT|qz3_gFJ_m*4p6X&uFf=d57=h7j ztz!Q_*jhcuQ`%-orPNfhP^sfiQw;b$TAqnhd_}?&N-qxH@Erp@M@H}k?E{n%{6YHx zWrRS`^!!pr2nHPllo6VM4gtytVW9DQ8qi_zISJ1)!$F6`?;k$sP==o;g6<2H@!Yd3us>4E@cr(+%6Mj%4*GGRjAxFSpkD>b;&nVPmBhb+vUn5EOeOIaKNCKHt9VHq z1j^!VJUf-dJ3v_+!t+zSl?jx^5j;bc#QQ*5d>}@H{tzhRJm@i?KLX0)V?0ll#3w*m zoWL_xyx#$o#Yr&{^eLb$z7&%|e+87qX^{*1YoIK?LCtWoEKn9_aSuTf-vVXvov?yF z2b9H+I2T(I=Yg{L3FkOV;%6Y<-N4-jNn8NR;v&w-mc*|>S^S36oh5MzD2vNzC!BE$ zgr`ZBpk*MuO{xNI0K(IxS)hG@@Gc3@R73y}-X+}vItU2wlIDXB0m8ea+dzi`;ZagG z=m;RZ2zL+QML>9wv>0>?pe$mf+d;Pk%A%FD6toE_pD2qgCE$Ad5{7_mCIvEH*lwLT(GR$?f39GeO6S*`VXZT+nf19_Y5>R?uyQ9rX1$r?xF{5$JYe z3Fvm>4$$%9PSEjUIq3G{F3|18O3)p|J)k>?)u20y`#^UT>p*uB{{Y=dYyjO^JOH}0 zr~#cI{s}rkYzEy$JOa9lcnq{zJPz87Q}x?ntULueQEUgDB%TJHB%T4?RXhi}t9Su) zvUmw}ve*SWMZ63;Mbv`sCSC>IP3!~RUAzvuyLbb15Ai1G9^wG#p5krLJ;fo=y~Mkq zdx;~Udy5Z1_ZCM%_Yoh1?jw$Y?khe8-B;9s?k7G6-A|kX-Cz6%bbs*`=v47F=u~kA zbei}UbecE^dVu%=^Z;=lbh`K%bh@|zIz#*lIzwCnohg0?orzb^+F>1(z1ji|pa%&b z(1U~@=)ocY^k5MLI!lCr&Jv-ZZxBY%H;4$(LvXrqTVNFEp`r!op&}aeFwqk9Fku2c zT(ki_T*QGMA+85KLd1j479Bumi%y_NiUiOjg&FiHkpy~_NCrJxbOSwF^Z=bBdV$Un zeL#;9{XmZqsi1EZ13=#>GC+?N13`}!gF%lIH-H`|hJqe1hJzk2vO!M}qd-p(IiM$s z8$nML<3LAZ=IxEPsuZ`0ZJ4#b!|CeNq-D}UX}CN=o+JN94)q%4HQuY#>n^W3}UC))R3-=n^DzQ6d6@tfke&~Lk6vHzp~XZ?KwS_M=GtPXfI z;NyV0fG-2a2Hp~QIWQ#16!ddYQ1Hva?*yL+t_wLEvaHFbCKsD{;{$Icp|^&v3@r{@ z5SDJtHog$CKjM>!^vDsBlOn&z(h?BWChA8lD@25&=xklm+Z=G-og*>1<|{Q&VS8Ye9yc9Crh+xF&V$U5E##17{^{1zXpt31I8<^ z^$_9_+9PzpirEpN6GCT%1gxE15X=aPSV5Bzx*{ZF9Zf;#hR_|M2SQJTUI@Jr`XKa0 z=!eiBAr&DFVE|U%bc76qOoV|5gAfKIz%SvCq42{{_+KdeE)@QTFA^YRW33*EFbZKb zLJqkzhM{{9T%5<+u%4t`a* z5VO@n%rpxzODx0)Un+i-?}oSEE&6+{7c;#c60akC>a|4#8@7lJhHYX5!Zd{25Y{4W zL-;pjrw}CXEutktZ-j9ORo*X(*AR|-?-da~dqq2hUI@bw@(?P0Uc@)RUK9@@{0red zgl`bMeD{kE2CpNqGUor0odb z2H*_-z-nnoV3|}AI81r~;ZcNV10R->f*zK#f_6ynAsj>aItaSKJEZ0aZ4k@|eGoDc zMkC}R6e7$FeogujAt2;6sWn26ki*h$gx3*{gp^5Ng?uIzHu+4NfpA-sGHD(DK85f+ z!fQ=_lv;&)%l|}pF*IDx3JaG@UXNptY`ZiICRkA$_BO~%%8dxY-BGHD3@-hr?R z;X#Ba5S~GJ72$1!4-vjV_#WX`1i$dsas)yQLPvZ^uscF3!f=EM2>A#z5Y8c7MDUFW zm%|aF5jr4rL+Fn%3}HON6om4KO!+K=A#$u-gm4SO3WNs{b|CDH%#`0pID_ETG*fPY zkccq2X}wG0Iw5 zR#lO2CF>pXBsGyv?vOdG(R1o$HmIVks$4H0WOZh)=B*d^t3or1tZcMLUZNOYRa|VD zQcPr4W@%N4wL*=hmz7Q}nufM3$gxyTPn%^avZ)eo(Glg)q!vV-%F9YCDFf;;PkhRN z@=q@-F1F@VBE;Avk_@w=KMDp^6%`j)DJ(M*aj>e>nH`u-1= z;-!w99URSX8>}2O6+doFqh7~2eB(-K8f^}gTrXdj`a8vrwrQ}q#2#Xr)s{OZXJ8Md z(W;8srw~)ys==gCQQEFC4G(ty33ayH(Ixo&U?1yj@^lc5xg*3>UV{ZF$sPHs>iYPw zvVy8&Yd>5YIJYlYUbQ_8uV>s~*%f6oi?CWcmq9F|7R+-NQHl0!L_B&tv)$`DE#KcbvhfvSMq7b!t&*5p9&! zT-=xy^|dI!(N$9_^DBzVbqVXSC|O!%Wzn=!x)jnfSJrg30z4gH$E0kh)h1On8*C`~UbDW~f`P01P0DXb`)l{GcpQkrkY zRf=-8!5c~_54X-5R8>?U`ZPS-^_!lXJHV1Z9bbqYSY$1RE_TpvJY5gD3+p$$yM}8E zyUQDBGk3+b{CsP9}ehG_=Wx>gYj?Ys(@_v3j#$wAE&#uMNAG0|Wn@B1TF9MjrC?kV_VpW)JLa zYeh*B1}(0#-Ai_E0o-M2e39xQ(eN@`gECi-_mDWf*aBnn(+Wy3M^)Nz7oe=dgIZ>Z zrKlJ~zXFr9yJ=L4b0YGfpiDpR35S-IP8(HKT8e&fRDG1yRxu~1sKi=UWphhmon3Az zRi5)+bp)K%Ji}V zE9a|=(u}O$zhV(Qjc=5=@_0JaSd_$d8sMd+9!t9=0Z7R7pq8IYMGm<_PU79T7_HqOUBGoC8G8Zgu3Nn{>D|eZ0UqA&FATqu$GAw^j@; zD!?4-Th7WtO7-lUfvXJi%#>JVnLSd44u%%Lo%%mHn@W+y} znHZKRVgLR!de}L%aXaCRFBI%B@IZQ7%12PMJzj z(MmS7{)=)8O0#L>KHFj|g!u)PG=K2?pze&=VvU}n?3P%bHl?zx7^4WgCv`CMDnL(>IvuGM&wk?!FGWf z5z9C_xu}4LjnLL%$8t|we;YPK^mK>ZHo;|+rfUlHkgY-CpKB-0QQ>0hqYFXHhw}oB z*HT?Hy|}EZAagct0wtlHQp|KT~a%}3=eUpBVq)D`CS@(Df`h##+ zfSy!=bnPZA1R7JRI(3T5%*4Iy3XxS=)}xy_k*1x|m^hLDOk7n!p!8@(MOg*)g_DoR zS*6(h=JP~Q3}x;BHzwW88c|w2M@{US!kM?@=^J*_T5Id?(&;vRxMOEiAJvhvr~SA{ z$k*kQQDm7`T2^T*%CFS2)}}vgiB~7-N^~Br;pjWujI>trKz8nsxQ4o@Ya8nXo@~;I z8`^=1a>uotaE_5txGAbwqI8|}a!#38*p+omOMM0n6m7PqC9IOuxpFGhUB4nn3-dCg z6zeiHF$DP{kn`{?q4F>gJzWuUs)l6bB3h1^y|se+^h?gowG|dQI?u6cCeYlk*r>a( zv60XeF(uNy z3T>*<&0?HKy$Wzf^?B+hOqtzFaDp8obR7z<8dNV_kSc}VMvDE|03g)n7Oi-KPg&9$X4ZQOH z4W^ge%o$bK)7$1?qeYwH5fzyw<%r>5lPP#ZzEW86K4b;nbrj9=@z*K}5K4s&9E&K1 zT=XnN%!XeGRPyf(y5N0y3p6ZZ8Z=8(?F7WOL096v%ygYLofJ@oUoTXm zG_t>(ZKf1isDp^jXDjoOS26xu9MT-*I-N@tIKheXwc#~bd}K`$_9rVF$g)y&5w}3K z;R5GFqa22miJ8ch8j-5d1uvr(v4LfXm5He+ECDaHR^e|U;$-+-opD{DOU7a<;dE)p zsRR_gj7o-9ur8%T$F#nZMWU6`pq*ipzDfI{E@u3|L-Oj6s$VaJ?;yNXn15E63F$A2p~eP^~Cm!Qy6Ttmto0ST4sYO{_Fg0vJ!b({&B+<~}M4yCICWkM-s;95boQ*CdD@}1Utv~SQDjeu)7G@+ z!x@!a%edauVuMgV#me!bvV{kc=-iN-r$NhYP_)-d9*BH!)rCCCzo=bZ^B4Bd8gkn| z=hXF0pXM-KNnc;?UbVk!XeiD^!$BDyN*B>@ME{HpqHBGvY_5rOxN2QN-A}G<6{0Os zl#XV^QS};`+<`hxG_Rj?j+lcyklszAl_6R+-hrZe)&H&C=HA>_Zb)*0Tew-T)R>B9 zLk;R#sx|60cC_yQUCl-NKU;HwACWg)b5Bxd%|&A44y7NK%4{auHJ-vTrv;Nf4TMt6 zp0rk2;r7D5>91Js>gVCUWO$xs{*23sW^pjpX}Y%TiK6!HwmuONnY`VuwfjVf;WcQrQ3~do-#z@4SQ4d7h?$ji&I;#>EVF&;4n)UCujL zy7-_=DB7ZQ5jVpYqI&aAwh%JPg&MLiCIuU=3OeJ5a8m2WEaZ!tNPQO!z*NFq9IbJs zlxUGiz0HoaO_bT(5w~x;I{&XfEB-e#Yh#tc5N+jp}p{R82^uJ{swQk57$MWgu zR_eT|eCbf+a1QQ3`}%8XxTj)W$C4)vG7Mg$^Q}g-Vze&vq$6VVo;L!%ItHUeSr##R zu4$)vvIj1d{8fj2`zIbxeZJSrYi}QZ@sRK`3CUoRBtLIJSR|1lK9R=0lF`p#62?r> zGeDEnSmi@#-{=j2{U_f@qkXXyF6i$?{3T(G(duWCC1Vi?UwpLIIMO&Wz${4;<=9df z0w}ASJ0ys342A+A3x~#!6fDN^Id) z=5Kf7Z)g59Zv1DM|ANM^mW+jtrlkmH`U2N%ms3gUvO>2eRMdB|daau}=T#fz^a5ic z2F!ev;tSp5R5Z! zz_uUK_?owryH&NE)eo`y5jS-f9^o>MI)%n^ecLKI9A%|rdL>SLjQMqL{5s~Ja^s(3 z{#S1Nub6+vjemwMKj-8teX1CBj)mtv3(vFgf@k3c7GCl!yhOrk8s;t&4VPKXb4Rto zv(Uh`(06~iuKT%JweBw`)oMR2AN07h)hR-)TkXe6j^1$agY@26u6Sp;>Ye2zs}ALi zjm(61D%pjyC_)u+2@%YS(zBwN6|HAQGs~oBnV1!)XT`C#@yyb7Q*}J^JGt>YG2iUQ zH#0xkji1c?9&Y>|%mn2feWm z3JJj}BQin&wpk&xQKFK3AqmF`8^Jg+DI^*tRcC>VotGTqE##1p5Fgq?jSMjeWPogl zqgc!0XyoM=K#E{q#BNP^K?8{-Y24M&|7!IKVwqXB5&A_Y)RO2L69*;qZAUt%trPpXG*C_D_4zSj6Hs4-Swu(wXUtT-DxP^FAF=#mM68f`83JFwGqucNB3zg)SBE&cbj)flN=Ci*>eFMYP)+|w?FRIZQ zTtbyUOy!mj2?~|qVH{~GyaJ>UwU!56TusUPu=3|czW}73#QQyCwPUO3XYxX4liN@` zMJu`owboniQtjosYAo-K0|j9K#!e3YXp1||5_`x>J!7{E17(G(TEd1Mg`URKPeL>f{FVLKe#k`QNJh3OI4mK9DQz}+MjG^=Q znYzox)LlALcj=w7P;*M`^PNr!uHuxnF1gg|a;a^H`M_AH*4pVrU^)E9SP0kA_L|f< zH2teyqeRpZZ!8Sc4|YWD`<(8o6rwhuvm__O#Sy8@`tuE6ZMkZ>xoe>ZPlFwAcxE4{ z^o{Z}_TlO)hLpQ|A(rXCbfw2SEr)1bbI7G@4(Yn)kiLVj!N8sifRFJE=q3!&Jg|GhC(;=D2KK%00{(<+yP6 z%nst2RI$uRHfWQg&K_gA>rBd*<=RZj5l14|nH0r_x^W`hI8kn#Xg7|@jT7g&Lh+v2 zojkM6p4rKs**!e7`;^jtAcK1s*LLnx@wM^p>Qon}OVv4DDs7gr=JACl5K-C^fKX=M z>I|2p8M>qyn#y1omBBid!J5iY7nPwpm7z9Tp_C?3+}TsR{MAd8W>>b0UD-OjvV*x{ zG?V<*s}#C^cdk!%d!@5OHPyeZS94s9&(Rs5(~)*Pb~{&r{yIl1N3`ma}@@{pr#kZ^RstU$VYvipd+_ z@4kKaSXZi>uH_WMtz<5*i*ZMYka%3Jv#rTvi(gi zkH724$0?_V_FSHs?)%lr-ixk}==;?EpYB^&w)Tx*24#P-c2dFTQ4eN*dVYF`j>bVx z?zMLOX|JF6wa+ik`He^;d3QKu8+z!yIzb5NPV27jbbeeV^lQK^`pV_I{7Al#jR$yE0Xj^1yw7zgx!vNZpM)WWBA727$V0rIi7BGkqi6LqfjDLhO9AUQjTKf zC?cbo#EnK_G%;x+GLFeOBIB8i=O?%$@dP&jH>L0dmmcOaZ@k7E&pcI3+#r*IG!;JQ z!cUL=+L*lROz)3>|%@1f4 ziqpSl^j-uzfsP49e__DPX@W*5-hP0F8iOcU!1*Z;mPZK988r@69Cnb3%U~e}6u4OK z9Ag~YfgGuiTH+SE!<=$g8Io~US~4|B3%vo9MCC)>Pk3QEMFC9|9VG%m0BXkqqb*FW zo)*QeejzJDswXN=5~T50Gc(#kb-5t}`zoV0H$YV_y}6PYF*J*l4P{5$P`)m0qbmrz zx_D}OZd>>b#W<}&jo=TxmO}O^Qv88}A8hA%6V-T*KoFsI8Z#6lv#--PonC+h!CIY| z&&f46(em`eY>Lh^j-yF=98ag?@O*@J1@yoRk5CkndgQVc!mp|jfd><+z|Z7OIfT%& zB6_kUMMs)^n8Qho#mb)o?b(^J*pa`n*ugAtG7EzE0fm}OGjJXmIFAifa5gb!`>-y| zQL15I+aX3K>dcNUpvh^Ms=Fos~fS3Dk}#Vc!``d21F6hSnB zi6D+3p1_Y_oIjE%?dGRaA;>9OW23q%+gL#Q^9W{p1MG_&l01WiouwarG>87Rq|I)Q z+?0+67_K`lfsc=?l%PkOV!i(CYN6`nu?32RN%bn1QQ)5V8Y2Yrm9M-X%>#lFxd*NCbwKFl;d6!O!$$m zsfd2~T3{{Ubkpd-PfM|>z&aDZ;47z-5GXJFz$g%3ib+i9nvm2JzjnhHSR6*Gr>HxP z^n9v_5VuKUZv9lwA7a)!gG6nA=h^GX)#84(nDZCR9UDJkH3e@2FOP;IdN$qDR|xaFFg(VzwJ0Q;S2iAC4k1jkQx8?>c6Y*{3U+pf7OjgE;P zS3NO!^o;r=p}vned^1sqxss^*s~e$_@*PFfu(--O>A$MG%h<%2xK$E!{>J*d6i-fg zwQcYxj?C!T=<(b%FI??N_)|vEkMA2Ck2E(d#oVy)YWm_&o6+c?M6X=sa`9)*G0~5a zK`tLAxoVgE6V0G6o%+RPST4Y~1+Q^8)Gyy} ziNB*%Wtw)B3dgIEM9HvCOo{P<{>m?w!@e@CI(y60?Z+Gt(nCGel><$8;Z%k>66G&j-}4g9!c=LYqjImPiNE|u5Cbz{8io_{6A>|$Li*+`d@RQ;XHC$cZ_GpD}56V zwf_s6y@9eDyU?Kf9)E%VH&C)Nw`m_VXmBI(*USJ7*l?wtJ~lB|`CNefu7SeI&l{{Z z=AOS``_xFujc+5(f5{%gWAXZ-UT^1ux$ZC6LtL>`{T>2y+Fx)XdBq}Ko!v37U}(>j z#Eh$4-mX}>>gJAOF{UadQF^V5by>>c(AR1f(|eTL;z3(AdgN zLCL$4J|N`LbR52|ogMBmd&S3eN8DdOrfs*?A^&=1um9er7jF5b;Qlq!=bc|!{0k~Lj#eLKFF+pqI%!1x3}1STRi-OpGV!9 zGc@2I=N=tcK(A9=?>qcWAq~r>mn#+`MD>zIRJ8J{1eu7bWn83ad4NzQUsX`=c##sox~7+5JBmlep4R*dDr8 zj|Pyy;lS>E(i@C0E>#vAyeX#q+u)6xi8!-)w8#Z!;*`|UIF@V#4z|t3-{E2)X!^I? z@ZIm^onBl*jN>nkAm)DtptFA!UIzY1$dwLE8;Fy$==8ZP9HcfC$Enf3I6}8 zD&yKly%IgxAH$3hX$h!M5?qJY12_!iT;p44~IIN zaG;=e{FJkB&a3 z!;Pu6ixDR|9V}f8dAXx~G`sL#6OPeq>S#aZ0MR+l1CJqhKOCD{iAtjbnDqxo3vnk- z5|Y7N?WO8}1t_BSHA;Y^ir%Ipm4Z=!%de zuxG-*J8=fO#Gb1hAy~>Ss2w_Z?QKp#U(qS(^si8~fh|MPe$&_rYVUIR6}99vNNvz@ z=b6M7^tgN5Hr!wLaGmM6H_Dg1io8Y}#S|mY`+MuYfPF|gJGKBLARo1L_QJKdh1x%f zeaF>?`W{r@e|q4RO9?(n=U&s9`*fr^%>=f;B~!q{JrXU?2ayC4(iamqC`ig?W-sKt~_R zAT8)FONN@^=Aq_hI!+U_zn3Ix4F8nv!kkzyt-d9y2;I+#E&`zwm&umP&k=bQ-=;ml$deA*OFQ-V!b-DJv~V zY-x@rPC&TlSBewk&DWFME4-Cs1B+LV3#_KmxX47VrtI`I6JD52G`DOPoMbk4H76(b z=-M;6`vgQ25$&o*&9-Y|pK8BX1NNI2NNw~Dg}(DzAT>c>O9Ao%NfK{Azdx{Y=Px66 z2DE9BkT+|)dHkbK)F%CF$MD4~R~9{6?z3^tki}2?7PLH(ERA@*`t9=Ip!Ac`4^8gd zzu7x$gKr-9(xh1r4te91@wa5Ydwy&Gy&11;scu=e;U8Iq$^09kb`Fhj;E- z)aJQ8nJ>RF(eJL}-7{AdT$s}Grxd>~?G8`-=8M)%j?H{&*ztt^Jzfc{>UJXg&UcsY zTWp&@F)StK;}Y-T36H10MV|=B5sB9_lCg_`%n`y?wpB z%rT@8VrXiJShDQGwAkIJw-&U0FZR*i&mA1|cH6hi*(44#WSIwT&NQbdwl}vU=Lrng zy?X9^kJgl3g%8@5nMM`mmnAkeN06#_cyLlzvpF%TV{%H5u02u|i(<(ld&J<c(^3}VUV%6b{))K3uH+wYyR|*O}$?J#|KT`U7T#6f8B;3l0J_u z@OmnHV@AiHtP3|yJih9~yHd&WJXU)#{KKoaf%KR}tmKAHi>-pHXt;SyJ9oTaJ zp{8Hon|s5I@X2?5`ap+8Uk?3#Ps=fbQma4Od|<+i9mC}T(;xFLu&k~8wtevAK4UHv zO#JML0d>*KyN7iPy6L;fPd;9H?|J_l=lHgnY4;nO`0nmszezkezVC-~@2omIT>fI? zD_?&(bBkzG)@oGFv~9~;436(zzT`-)>A??g+MfNuz86;3z5D&AZ#I8*_MAOst$)c} z?`!P**sas*HjFa1U3uK>yQaW8{Pq(6M>jU}?e*9__x?ENft{7Pb#E*<_-5O@@KYo1 z>3L+p8)YnsyeZ_<+iuPnmvrj>Wkuhv-gDwX>EvU_j|NVQ z+T5{Qr%yu<6b{LH;?*YKjcs<;`_r$-A6Q@2Kjy<9KYp<9*|oQ>8nJEa4|g0t5P0hs z+4d(_O)LJr{lPbn9~tq^%^&W6^~FgYS52M%deJK%ls-2laF>7D<9R-}Tc3HgXVkwl zw?_4Ced3nicU~|)oIUyTC+D93!aDo(3r8(?ox1gC*Up#Uf9lqh(@XJzrWGHz+SFos zUEobOCoY&c;L%b4TJp?G3#NCu`_t&o%`P4`^ccO*yuf!ZmVqhC5)fbsS@|xn$zJuG z#aw;IHJMs5o70f=3UBY6`bXh2nWl93chS@$e7p-k^H9EUWt-zz1h5ozH}^;~r}Q-U zq(z_`M-$By{U2YX7Rc_)flSMRjO74h?um21R)j_;JbASA@dcs7l3)7axpA!@9B^HS z>8B@TKmLMGj~0fkmu}k|)be=u>8~4)2A=Ej>Uy8;Z}fa$ibx#r-qPSX1-IY2Ixntx z+XGn}P8Z(v?q~OpembDj-fbUk>G;%K|7{=MH~!7M7T%|)&ipEA)b++LUq0cN{m#ye z=O-WCm*7?PMB$HbmHgOi(x#^82fkF-qhM=kLCWk$YVwc(X(gMS1tVLmZxu7a@|M$b}XO# z)zT4*TKur7%lK0(dv|`S>$umR@ArGsdpo`Q?s$6JJw0xHccZ=2Ps49q)jFl^-kzle zw~c;jLz5?)$1Zy7{7YU-R{WBC?$D@Lmao2jS8Z!s+uW%5=MJ=s@6mQ$&l|eEGjGQ| zPesQ*x@GDaORJkt#Aj{Hz2oz?lizDSq~EB0&yMXM=XLJz+=*S@k3CsFxyi_Zvvyt( zCw6U>7vz3Y8@Y4$bw|bw`LgGxCZ}Vwc169AF)#Dfp1l=w>ngsC`|Op0>tFls)#$OG zEL?GBSeE(GC+_;}%)|$`T{^yf>gRjbR^M{=gR?`v%xeE=c>E)e&Yx!g&z)0d=RVzK z(T8I;&Rg@3 zej~ar`gr>t%|3l#`1$*`?;2QByzbq)5AIkVs4a(Qu^gT@hx+)dySzxrfQ^{Yt$!XD zqvnnT5wanuWdQDS(1)?oMVdK~ru!xa%4UhViDT~fHhWPvveP5GsV=KP@E;`6jf#|37`Nd-%w+F|$_p{QPvm{*1n}=f?gRKL3%G zwuLLszjeJlu*0i&hW=~w7Vn_@&ldh#n6Rd%L;nub$7SWW@-Hf#u1GHBJUWPIj%?2jCL(<+i||#g-<*6G8L_Rdi>JD(y~XNx9v^!_IX6= z5Z`Y>|L|c`18a8<`{~5pw?&sl&d+>w<`=0QtPky-JZj34y)pUS)-L(%;~y{l&~(#3 z+MPJ~@Y+M)PR>s|Inj5+?fraa`5gAyQPnEqWsBw6bH`r4&hYYQY5xw1|MpXBmosaB z-ZbgHqvC^219y-AaqYwYLk5Sgx3@YZ+P}8r{)hW#&T5(R`n&)9=Ywn`fF1pRd+fmG$$K{4asSvEHx3`1Svz3= z{WB*9*auI)JmK;n1*p3yt*L&> zj0s4+CiM48403GZagmDaJm)2AU}6aNpU!xsxr;NQA+e3YlxTc1@~Z^X>VMkW-M;43 zS>rE#-`bXH?e;|2L0h|usW}JD19ZuQ5|hnIH4%2B`+cxYE$mSZjcNU`!-bh)0j`-J zo!qrak%k3PxkfAab64*$pQTIgN*%7-&H zTsQIbu%r-qakpKYx7A#%$^Y%6_S2WeeN(<}wdnF`>a)KLeB!m&296%K^yIE~i!!a{ z3x0S)NFVxcd!nFQjMvmqX-Oyd)1dC*G{9&Kpwp(*FDt z*QYGMxUY4~ZC-spJo$|D$QSKndfr)av+R?5N9sx6xTx?XGhg?2Pekvhm=n4s_n2Td z*k$Q_P4$t@)rZa1Z(oyb>Hon+<@M$`tUS2>jL9jq;G5m1oYA9AnWKmI>Si90-Z`^t zkFK4Qx^+!SY-^4sJ+JU+=T4WtyWSbU%q}T6sh@}+d{QNhLB)@es!SJ8n58fBEAhYy= zpHE%>{qgT_2#)X_Hy~w5Uz2ZX!jsu=teCy$_It-9uNj(pPq*hLmYsRKf8CN31^4~( z@8qUuUTSMxGH&F3k9wyhyg6z2KWl3~zbk*!xOZ<)*(E1eUb@_|BV(zAl;d zeeW4{wUOa{zKvQD@aik^^A`N}&em7w@QITlh@xzRS!( zdpbWozHj)K1>)zJLl(9 zt`E2RfBsNy%JuOF?rzfRM9-~pzhq5Vw`*>~FFVfM^yAO5mD&dPI+u#0f#^=SKJwI#z2lwB*JnXCg9R6%s z)54dE?vMRq`-2lW zz~nbxyBXnM-GOgL$n_fQ|DKx>%H(Ip-3QEnUAv{E(9MVxC7Mjp|KX|mN;B1#nBZNr z!tU&4I&&#}?N7hnRM7PCOSmx}71h zRoZne*2KK+AAZ+7i+TJGb4HWz^X^!blOFWpuorsx?Hq9Y-mM>0n#W$h;GxXmLtpcJ%hs>ksz%vP;HGkDfnPuzRz#$K-$S z|F?>>fA$#jzGmROyOe{T6n*|HY!1q>PKUQzk@T zKQ~L_2&IJ{ysHc?^vraPjHy-V;V>K61z!Lv=YR+O{AU4nW*R3MH1?zP!W#{2VdWpN z7jB5Nhz;=egml531A_HaQqvMkb4rNlgM*fRAo}2-B`1&@0znhqphXpW*!$q@&pHBm zA02xz!@jYQ*>>*Yg^Kx`UoSiJ)o|Z=)<-M<{R+>OG}wITXxhoF`(K}bsMvda#XQx= zKli-N4hiSb4s3D}`n@x_=ggM`p{}ws4i1j9@5G4zkNFuVZaPCH%)8{hlfa4f`|FR@ ze=@I)vX}WZv(jr~5W{*4e(|sRm5r%4S8mOIa{S!4Q&kN4-UcozN;c=;GB2IhAE~)# z+h3N41@n!()c=OA*Z;TeX`k`#r1)94!yR6JJU26KLeKxKr24x@y|^c;J+gcw=~b9K zw^}jx@SMeqY<|_(PRp85u`Kt}!#O`?|5)6Z^5xi4u4!#c_Rf=9$KuqyV{5}~B@2bE zs!vnieE+h)E;&+_ze>+Cylhe7Dz+~EPO)8y%LPx*y20l@tKsN{v&%2MuWkPD(7KTG zer(AMC62^f8v^9=_kMiHaR0d>`;y64-&5TyUi?_$vHJVHqPoQF{PLBJrGB}a#QrJ6TG1_tJ;gLIiAhXebxKGSWigv>jC``b;a)| z*7)7h*s*ct?P;5qJ1shSUeeL`LEBHQS&IeJ3@-03G4j5jT>W)sm%j9I#r2U}*WGck znI2Ghec`2}p^r1~g&(|l&)~q{GtYc~^X`xJe>qo9(n5dF`3P3M_q+=NOmDsCRF}EB zxz1FMW7jRS+n3|}@0E0T3N376x&$1WwFdXW|12Dy-HJuZT)-g)b~aXRK4vBE&N zbR)~mnMb@{uJ&vEcxTswV^#nEEC7y^H8w1%8{j$%X_kr=coPXL!{dMqAp<1|epp}7 zz{JSZ)FcWnU;z~{Ce%YXxZf7JvQJ zpmB7Ma|_>m2_wtiub~OodyLB7{1_cv6~N;Ts2(%s9Vu5B&6|YyWo$|KQ~(T*7?m{cj(1z&%@_^3pPw;J96jG z+b>3`92-S>s`7YW-)cOl(Z4&TW!*^?!zN~4U>}kboT?`eY>Yz2m9TVSk;j#q7`+Un z;G++~fhAs)@db>rqva(snyTK_sS$~rCxoszbll4>Vf{VWMu8-Fb4EG+rY=Ux=f@2OaYoFIYY1E4{# zn9mX`%9RT)+ZXxTrBxqcsB&8H<2TPb3x%m`*);T2x1XP#XFp@JlVwoE9xrVsRjcbS zw7I-l&urb}95l($J@fH&rVS5FqZ&F{`n$@d3eLq^#xNI4KNGtdb;$j@)tOtTS-jU* zUQ2Kb3OC%4xIlpO>zU+56Q<4454`+9FYLfGk0~lwH=k8l;eGZ8M~KEmhbWH|xl6e^ zIvrCDoBp1>we8iX*$WQ2&1RkSeY*24P9EDu32NJ4d(Zy6T|o6fKw|Jlg@^pjYa2G7 z?yKo}b?>WxKb!H{*V;4AK6)PTzx!GM15F{r71q1{M3L-%PMTNm#6{LL;QOpq)GZ+vf zhzN=ZsHmuzF(Y8Wte7z&@cW$ecF(;#yO;g`pZ`A4=hQp5>zuBxuCA(1haUI(iDF`6 zV!;0oJ~%OP9jJf%c=^za^ZE1Kjjo?Nam@BaQbNrPd;Pg zr=EP~nbXhN_$jAuyzseaZhZQg8}I+PBR4){`jk_*U3ulH&AY4*KVV|wkmZVrAAIb{ zOMA7SO>DaHipy;`F>y{kF|m9`Z+i=TWB9wliHTLsC)2kA^6!5?oe*5ATCpKSwYGMUPhl`ci{_}^)v25XFv;M@yRI$y9 z3zwUiIBU@cB+i{I8tPazZ^Ox!;9%aSlSP+UdOkZ061Kc1efhz&ii-szvsTACTBTBm%p{~h zvvpryY{s$tcvNKKud$FEqonXg}~j;d^FitK5=Wr|o}9K<%p zGPX71>ER~L0(qKeUdPs8)hd;q5SAwenr)ZmY2~q=R_HuE!ZJndXdJ{ph#M90u z>1hY^I<^O^R;l#F2FjBHLr;T=jo9|7ET>^Hts+Yg=MO3-+UoAuQr(~gT~51OrieX^ zgV@tp#$Lu|dsd3w%WgRE1;!Nx&6*4R8!<#C{S9ghL4R;lzrnaYC#%`UUbgI%FIJTyU*UQO@Xnb^(0 zmIv({PK7Ry$62R{!;OPD!dS-Rjm_@za+rA?hk{kBRC=LI}lO444q$FwKAo0d{l-ObAdxGhjl1YLWpH0_>{{m=K`gGGIag_ZcuD zz%I;y2?6#~222Q0z!@+hKq+Rxga9=#111Dk?*k?Ts2KSR69Q}Y0TTl3wfuz%fwlU8 z34yiyfC&LwtX#!}z`A|Fguui4fC+*1`hW=mPS=@-$!?sh_hO$;Hb+s3=IuqjYW5zc zUpqNy4&e{Qn$12$7p%CDA{n0L@m0;cXmU_Chc4qsxAYm&QJ{SpWVb#W4#Y%=cz5h;#fC2{tuhUckW>92LFG~S)QwjKht&5 zzsbo(*Dg0v>HJo~iB>v=iQljI{NyW4!naAjpnyL-`6h~QpZp*CJ#DGh-BQ1yc@qCC z(CnQ2bp4)|L-D=EX$ZuhAkMKa{u6QPg!tvkbKm5TP<+4SpHcjP!t%?JvHC_#$$j+G6eLM+?@P zCV!<4Oh933i*=?C7A!(yYMMF#rBbqyc%pF- zPcSx=`BWTjUdK^j)hdlX1e;~<`HEaP+|{fuWM zDdU+Y&9PEE)x3^Vz^YX$6=^)As6g{1D{4EAlWwQ?Y_D0wv~dt;8OvB?L~o%<%A9Fl z#~EPNDwQ&{(vnf2lW}=ThsM|2^&+oY#0ADdyx3UAON{7TXwn?7%{kw^ju(Pet5oVx z_|j3JIUx(MKkw3}Tj!NtwTM?32k~lS8Lu+t{&~519WMi`R;kRMeW2_WSYrQhig5n# z^14O5-8hJM7|VF4k?puNNg0=zWWl}7ypFemRjX7gvKOSNz^whlacaG*yk-$s8VB() zV;NT)(fhbbmfIEPb$k@8TBTBkogf(nW|td>rFA~N9_>M92|CV_j-vp~xsm!0USN;ktmOsbl z1V{dAlf#}Fhf+0tB2|Mmo0GDNxGvI$PS94^%g?P-#4n7^$*OWcGq2;PVAU#>+Uy5u zE6|X6cg*J4h7->=5_oL ztXieg3j0@96zHvxe~u&QcP!p-K3!f|c<(&J#{1)USnJSil znAh=luxgb`FVqEjQJ^^^iv=$^j&MC08Ap)O5*4Ly<2f<9T>fXBBJMX1;sImUm;21? z_%B$sN~H(tm^>)(f2c3G98+I5?L17*$?<<-9K^s_MrowJR3^ETmNTz|Q8%WPN>fw{ znNpzNNn`iX^!R;5AHn4^Wtk#YG!9}VV;L(Ob04i>UdQra)hd-%I1Xe*fo1NaXFtR~ z+Pw3!nstg;-8hIfjJc0iHLqh8uxgb`57c{kP+(*qExn#BdI%5nlUyEaTc?P1jDuL$ zm>$+LucHR5R;l#Bu^|r%q=#`mlILMSJrYc3kHo~su=)*Kb{;mcP7xa#2eFZ{jE#-d zlTDJ8v8hROrjDfb&FfeXtXieg9Y>?wDbSoXbDT<#ezLcDORrhPR>naz#xk}xqBk!| z8S_n2ZwvD}HV3O#snp|$lb!-2dg?zko!-N}W)a&N2eG}ej7J#J+rcDdwl%L~8?b7X zN*N9+$tcjtxE!Ukb*HnhS1saE#zE|7EMtEoItQ5K{NX<4b?gmRtx~DOfg&9RM&}RJ z=F;bL`5oj{nWHcc;t*pQk2N+_eda36nX3Sqt6-VgQ}>m<0uA+ZrXNYKd}4l=|8ZWo zh~tfec#<*mJ=VOACxTV0ROU;4R=x@>maq2vf-c`@c-0s3=m5S6}DJsxV(YrY=?GMIUE~iCavxw&y2k~5E8P7AKceY9HkA>!S zJR7W9rBa4UD;Whw_lLG?+fIkM5YLOhz&MC7mT{gDo%55F@j{cVXy=;O@qDmql}bTs ztppVqsn615-01Cko!2bl^~OQG!C1ycM)cm4q>MM3q~2@I>v#=VwMwNPwO4uyjOeKx zx9jxY=QWGC%s7bm8_W2B5xvVzvK-%QUdMaDs#PjwsJxO@I@d>bMl}bTsvji2GRX=v<^uFRXi}5Vso3__`6jubJd_ zec8N@TfnMSDrKnLl2KrEyL7xhqSLv*YP8;YL&|Dsmsb< zfyIt1<-cQ>|27(Pzc;VrcVN{jmHAVLmA?Wb`DY)MIfz+()R*au zb~XnaD>vuppzFtkkLJOL;F4l=?H;zgjl92D!NQ5 z(6m0ZX=}%Mdc{~zJ9nN2mMo$)((N&pF~^9fI_z z4g1ZnTEddg720RJbe>kSOc5&^2Qk-J#wy0NvZ8q%Q()C9l~y=jWJQ7A3i*$@7VsK* zp+J{%EnwHq%No`xVol>9YGWB|8S`4e>gIK<23D<7>4jrSUKAL)7Lfg+-N=7*{{3~b z@`BDv^!qjE-*@l4Jj^;ptY_pBlCe3DU&p%Ub*uwcty1ZM<4hhDXwJ`UUEUhw*~4(p zykRL8{9BFj_UJrpY@H%DF{buL=5=fcR;^O0%`qr#1xB>9uI}mWAH9C{M#;aZD}f7S zwLgCL>a@48P7zxg2eFm0jK)Y^-P)viu?l2!^Ex&It5&HrMTL|p1)2-9K*rXOH;=C$ z%p>}IvyEkn*w)A;G-Dat8MA&YFt1}iShY%}71{+^QDCHgj60U!A~Q>EU-s#|>}Z`L zb}|m)k;XE1Hc~#jnB)QU2=h920IOE1G)2Q8QwsD4(D?S{ZDT!AXIwseSf+?Qjf2?B zSjOH)JndtWo_05{V>hsBl}b-E4DzJF(9@V>`W@r<856bkw7+GFIKViFM;ps{j4}7w ze&%&N3anbC(hBW@tSGR=K3lR*ze{G8TBrBxygb%AMI2%r#G%GA4l`0dk2A?SeXw~Q z2Z2?qRGQ*ImMI06S*I@@Up`DyyL^tcOc6&J2XVBqjAM*hK94uA;|Q>7l}anLRkEVM zNck+i&3limjA`=@=)4?fog$uO9K`X)Y0#VB^zRtZIFx~Fjzdk{?y6t=n9jp# z)?xnI$o#dD`D-Kf=C4_%J6cq^Q=oad8$q?T(mSxzoA#PT zoMjxuvyEjeG@`dCNg2;ENxd`8naBp2$Yz;(w3gCSU_?*-XvS79<8!=b5zjXc;#^}H ztr5K!m}GzRZ1Xyv2Ue|8DMLdj83jiBo7%2}JDm%>Y7yrf2k|0f880@Xb72x@&`ol? zUT9v&d0^Elm4dW#5>#MhyVRF?Y^V1ouUW(!jf1$@SjL-;4IQ+pxX8SYH-J^EROU{5 zrQ8*0=r%1j9zCSX|1z&z#N|fDAI8l0edcw%7pz*PGT;3&Uj-J+SLJkQm+z;%ZV}fQ z2XU>jj87UVr%xwg1Y(lq^a=Ait_G`CsZ^w8(UvGMQclu4tke6N*DT^I#zB15SjMeJ z^uCdV5r|3Zec7CW2gtyKW$Mv-NKb(gJ=M3zb$WMs%_8nFGVU;z@iQZOKQ+nv_7n3u zZU?JYsg$9CkcbM`QTBS07j&1l2AI@SWKR;lzv;~`H93_XqM ze+*=4>0^qcJ5L*1hCZ}$5Stpy*vy#c*Nx2SQ-k!WS*8`*6h({Vzdq?v+9syRZQmIWFCT#^qw8!m}mB#K9+9w~=yIH4*-Hn6T!&t_i zM)t{GCb>^`HLqhAuxgb`Q#5okrND5XjPo>itfwb+o*rcx?n5(jADWT-(2RI`v`Ko} z*PI*DKyFB5nVx7At1qR(^w+eW+<7^|Iz>F*IEW*SS#J(Euj6rG)hd-9XwT$9fsuN% zbPsDjgohJ44^OZT_f8lGajY>t9AjR`(O}gol^$rj(%>&@$U z9ayzWr4`z8Sy7;26x_APW4v57-pi?-m$zD{h_@LB@pfYw?=Ys9x0u&)F<7-qr5D4X(#yDG|5NzTvA;=w?3?)5r@J=s^v=tb z)+yp+#z9{C z%>O&)b$lDFTBS07+GXXhz+(BUe9u_Cd_S-9{SY2hz8@a(qVhen^K!R!cn-wad_>#! z3-daD4pyyFseMvvE6`jqlV6_StUYqy$QPC(-k)QqJMG_Er-AbqI)8l~&U$0%x$avCN#=wYPVUjWrb}|oGMyZtH1R@y)I+>Y% z!lF)xN42c8hLNG6v5eY?&RQlp{$9u=+2il$bUF|7s$4TM4q^ji z8S5LHk8AI&YtFS3kZUI_Gke;5Wv@Wg(opd=0ExrP3593Yk)%xh@;2e!gr;Pd^^(=|!EV?^~vb z9~cMmLt_~~GUDmSCh6&W=5>4*tXieg6DJdSQefyQ`~ID$;W*?cOIY%`Li_B3&eNTi zDdH|8Q?o|qYK>{-4)Z#G0#>b3X@&ERtSHc1A^$OR4tL7S(&rpr+b&B|vaS*>Y zmhl^7&N zo;caclLA9eV~*)RjNfOk>O9q!DPk?-Al5dPv5qnK*_!5ctN~W7QfY#Sm z+Pv3vo;J5k5nC7sv8Az$t&CYdo0-?KDOj~irIko43XGIbjsa)4d4H9aF>T&!J1_IC z!!ztgo?$m;yED(6{x(Q|n`L_7+^^zLV5Hqyx`)3%gooF49=5km5jz+M@d#sj*v`C; zhl5qCRC?gNCl3mwhjHW3e_}v$Et~h_P?MQ+;_EvPyI7})osEOo%~-~+#^xrS10HE! z$4+3?DwSU7f5?jh&F4nW0XpZtq09eZuUo`{MxOOHmT{0V^M8za9gha9R;kRN3ajoJ1@str-+;eSgzMyS`@;v^%}*v9m5f_WWJ2CG)7^gy3M9u!CqQpGb&np;#wcSa_V4Jteb6dJe8@P64;#z) zh_U&uoP5B%j?2NSRVtm(hmjKnn(sUJe5PAv)p=R0td?KWj_a(->YbgRk6EjTtBgEW zY2-OeBW3l8BxPJyxDoxkg> zRK%x^+(vIK<1~$~cbZ_>G zMSQ_Hh%Xw;_>vLbTauLVv8x?lH-MSR0J zh;JIp_?8jfZztgiQj;9ef6cs(TfwSTD&^?4NKS!nK;LiYyF0xfdCeleZ{)Q^#xj0r zMDNE*xZ^)b6}Ow@c7D&C5hln8lVu9iHIc9a!|haC@}5rj9hfpy2~YDMm0$l zg-Pn(@1HX?02vyvOkKJj(p6xntNr@EPPcX@Jg;Zuc|BtpYZ}pAI|+BLo8*37&76r< zkcm~6DMv3uath4s*K9K{LvMDQxu)8IA5+U&xw$$DUx-DwPK5Y001hGi5fu&aM9t{yxD51^y5IHhc(wAMX4eVI}SvF>=p{v5cdP z_&YiYcV3&Mzr)SBn*`);5|-(Y-kSU=Fyn7ro!fY9o%=}V?KrD&-?fqZu8n0p*@(9j zOtQ`$YtD_>AU9&OOiOg^WJ!UnbK_3eo8d>N>#h3JwTX@c=Bp+?+If1KWr}!;aS%^6 zGIMXl)2T_yI4wyPrze>cPd91qQmb;Zc^xN#RjX9mr9UXU3N$~~;d$nDJQu85rP2d^OnFeCxqHNe+Jh@Q z53lvQMZDTLh}Rg)c)bx1uQN%ZSDDxGO0a5`N+CLQ5>lWSQh93(__0psQmHOhtN}QdFQ*T!V+289h&Y9KAee%^i7P-aH)xzodv+z4?`jTHCKa#MPa@ zo2^72%}5{3NFU9Jzgv>fM@vE<&7}FYcJb%U>7#-4(O9NYx}GwsK=a$wO`o4ws?P=T z`Mb{N??-(y`R6&KuUm*dosmABkv^RfpWjYGpDsxix0y75kk7A~)42ob+_6lbbXDb3 zf##mn%{jKt=kOG^?GhHfuT__>?L7X#B1QbrIEWt^%lNS|jeOs{j_-k0t5h1H?_mo60sn=s@#V3EgMT^RFP!zp_jrI=m86p!s_W z_1kfMr?aZ_V~*L#l(LcMM~%51E1TD`5?HlLW%l$RmAwKZ+mZ7|pCSLzYc#uQFaHA% ztlHc=^rE_UL+529>lCrEk=I2Sn}2E(H#Dzf1F&k9N)Pmz4AQ*JSdRmF|L~L+g0Y zfnJk)I*i=YVdS0;BYFoVp+}sgii1sZJNGxQV?VHJl}cf{ui8!phTEzB$rn1^Cwavp zjx`SAI3s;WBf7_%G|N#)@kDbba6u+;S*8jdQK=}<6e`W(+|3s|ooTPiJ2Q;DGsDO` zGmPk*nS{G_lT>k*Np9aW%nMJoj#*-SD-IOj)xpqeVP1ckL3^6G0Zb8Zqv$Pxoi8s()qc}T1C9y$SW?4yz|1y z_J1%5ccGdzJccqA?=$CVG?1s!Sf)dIn{uc?!_y(`=>GcRROfGaUOhzamO57cYUk|= ztMFboBky%HmT{F4Zyz_wamz=|xhWOorc{<`i4LkPDKLAiytFbq>>Cwud0yAZn=ZCLlnGK8VaG6`7+o3%A z;_}UY{?|KiH(7;u)ENiyIb#{0H#RG3@7-w5o614nRL(M;&{vid1)7zeyN=WG_3QBu zQC8pR{Cvq;MciT>#Fvd_e8osveKiSB2byGAebKy*FMw66R63-0CWi{ll-0O#@lj*z z*Ec(F-?T~*-!js*Hqx^;;_Wt*tY6k>1=hWPP!`*kxlDp66 zvx7JuztwsAfo14h8|hmcbH9DxoIW*3pPFS_pkFQv3gmtpcTPPP1L```{^s+^Cib8< z|J$91JFHX0oyI}jWh~>TM#|-9CfOAJ#GL0TL7t~%nWpHV%aj6LQ#hmZolfVMUX}ZA zjNE@?;4J6@8_Sq<9G&G%a(nLg zADJBnnH^@CI&`q5qrmL#`Cg~9dZ)9hkv_4J`C%hEYnY_YD&{8(%Iz z?!4@59p;{m%sm^Kdp2gdJkp#gXOJmpmg$A@hrB4TM7eb5_F=g^eY}_3J1=`#r-;3c zbeE0vmW}CUPxCtV0IOE1^uqW^zP{N4)dBtJkB_X!;NJe zVMOooNy<3VB=rt8uj3G~YL!YoMkFc?1xEDLF5TJbJ;7`8ETNHS35{hOXGHHwCfQyb zW6r~cAP*O^Oc@3ul2KsTUgVs>U7gO!UbTo5je|JJ$o<(ybe>|8n{$FWH(G$)Xu&dd zzK}W!bel7?zkb^3Jlm@lvCzotD~!Co!idgulkf&SliaYg%0 zjk&eIe%9%o>otqurTiTH+#+G*o(Us*=Oy92cP6R#eDgZa0jpN2)MMl!Jq1Sew7-~4 z_W9~UuUW*4je~fJv5c1)(R-;$v#zS)1?F|U2&`JAQicJCWE5!D%f_RhOZY{nbFo(~ z;?2fEywzC7Ta3;6%KlB}b-WR*TBS03`p(K;fo8+Z-up>?nY+9EFZa4de9$bEOhI~`5>#NMeo5~) zo!;GElle*`^OZ*CD~;&=CJA2zGD*E(m@{z+GI7Z=^%!|bPk~u_zwPw?=rxPD$H-iy zk*oDa^!}2BC$CIW?+@m5#6UV?EK`q>h4d7drT4o|?_RIT`;m>jAKA$Jk&Wp6Ckanp znWWx7%z0xn$QzScrXHgO=_xQv@AsYF174H+gpJ%Myo%Zh?h`hmH<_f2!X)+X_pj*y zf^+~`rXC{!=_xQv?+=~c9OqKR@3D*4JXxk5y?^N`FiVdM6F%AM=y z+bT&JTbeXm=z!nEoZc)*Zye98m^+&D#tM)(R z=Db-KGmV3oHZntKL}yVF-gIS>f@hf5@hq@vl}bT+_YzcKRz2a; zgv;^8UbBc78F`G~$jqP-y_Y5_<3f|vJKvlSHGq7mfo1A3LXe&Uv-G$OVZDpJW)W{P z4&u#5&d)~l-j<|{x0|*=*>${ zfmwQ7=kfOa!fO`sGvgqBZY<+&BYM9|QpPV$Qtzkcb=(D3tx~B+Z(e!|%+lkEk@fEN znnnEGIEa53%lM}ey?-Yu<6kDJ_c!x8{t8yDQmIF;UU~}5()(|xxBRL(-%%NPCdF9B z3P$u+Ov0JTB=t)3ItF0XDwTTl?xm-|EIlr2dHdG$n!NwX$orp+oEMDfZJ2~F^O>aH zI_8`gK+X#+Q}1V~r@)Aw<~07->22#Zc|O6&`#_ClY-7xR?0j>sbAepvVwt(qm)F)P zuvkA<`E%{f+q1XVV(XzEpsye6YoWpe|Z|hmsDdO2i zKFMR`8$Cwq#&b-Xc{+7Zo7ZtBShY%}DLVc#r9iX5r|yUF^ro?%c$1kuonsm9wKsA* zk&*Wx8u9c3lk{}9IqyLPc@HAX^u!=Ro)j2*8Z$R`@%VWcF1y*&`Ig}vX5<`Z;^oFcyu!#+&c-a3 zmzvjcAy~Car5DB)@}fXrEHnG6n~xf~Kj`gC6ii=#xGZKbueDAQuQLwf^+ujfFtV>M zGRXpZjd>lf2CG)7G{pc!rWEK4sISvYdV1$rPh4WNr;9C9#9NGv&y8ig&4{PBo1~{V zo7eFsuxgb`PYhDzNr9oKtUq(mS!_P@5?R`&JIuEA0npDGa5c}KF0o7zml_B0Zetnm zF*Xm^;q@+a?jr-akBntnVf-R13N+j2;l)17Yb7h#%dq;qTUK`HtUMxrEH9d0;L4Z1 zyx%&!FVo2Ug0b0A9xgMl<9%S&DwQ4>)5wDY%_C<#mHKz85&3UFBSHHfQattW(6t zjf1$_$Q^dZW>=NN$IR=v60BOK(hFlBc~PL*eWo1J3)evw_j0+s?9qAIb1^TgbY4DX zog%I?G6iE~PR7{mB`=>euj5*FXOK3eNbi|PAy>N{OD_cEOS}L z<#LmCxCUzE8mN(Lphk|Hn@#e#xzU`9p&%DSS*9rlPco&z@VFW0>BD0^adp6+Zm~=e zUp5ZnE54#tXieg69X)HQefGhK04MDS1Ro3o0j4Fr;+QQMtZ+S zJl$rJp1xtu^-qxNpDfc8gE4thVA-Co9P5b-A@=kG%W(bE$n{Sn_ZAxQbh}A<`o1|A zL_scyvP@45*yKrpWqZ16tS8>nXHR!orih;!x%_D?^{lX+Y-DzIO9bnZem7W;X z$&&)h_H^}FPh1DGr(au!Z=@NyRBGfKX+}K#-XuN!%A9YcfqWy4WqM-ZCr=72+tW2; zJ#jh2p8jMR-lt?_TF=O=o)J%fGf7YPnDZJXkk=@&Oiv6B@WaPa9Mm+u3Bt6}0&U*zw-YdW|Ju!fkCk1AE;tJ2KzUp=Iv~Sl~K1$75-##&4 z?{a#;GRzkmnJ-+en=drtY0{+GPmSjN{t?rJAk%~_(-VVCc~YP`AREoTud!tR`FeR; zYXA9Rou|r@Ma(hssSqP$IU}B?OtMo}nlpq08N#tlPYgumNrApoHr~?>V?A-X!sRsA zGDWOn9K@=|GFCI?1JuOqjUPfL^X5_78Mm+6nlAiW3XJP_mVuEFQqVbU@1(xmU*0G+r zre;qEScYr!My|~pxi)Xa(?KTbX@7Gr$%9;yXPKUuB#onr~EP%Xafn|Cs(~|;2 zPfH)ieov0ZjAOYv9CKbp0rDyemg#|c33*UpWE`92kmJ~)huh_0@nP(Y2j&Is;f2=W zesClAgBx@FdY(D2Y6f{#Gt2bAyn#F@kmJ{J_aohj0o{+ZpuZo<#2$3LZhq(CLhBUq zQsW?AW-R07M(XG*k}y+d(rltf8D3&u$BV(LRVv*vTOxM~jLdUOk10-X^J~2(b6-a0 zzKqO$8PU5a3Ex>XNxj#YGYJMV3C1$@m>H3t0<-j(S+d?+yk-$^HF6otSjO9p=)EHe zUko=%y^GE3cr#eFN~In(O?nE9=sk<=V+PB5@AjHSyvI0*_ZrK1pAo&wl9ciOBvo8) z(mYx{@Jr3>xCE?PrBaw_7zr!T9N72sRjy2eS@*+Uk@p`OxqN0U;|e3XS0*XrVyni5DU;m1tIg~9I9Rnx zr5-ao(o-NeZ>F9ycjxWTGaQtw`K2CpE4SC*;A%!>3Bn5DNWo(wI$83l66qu#QEUoo6@S5DeV&wi6BiAX7=xvmQ`&Ud-Z(VcVTnzH& zVwS1LOosFnn5D-Aul2U`nmmVR%GBi7V%mmuNpA&?g1luZ%o1$mrYXd zHRhc6LC*UuQ;%5*=_xQvZ|_d;GOx*b*vNU<$a&a^-sMR+51XXkyUpvk6s%gMQjZx2 z=_xQvk823tzE62gzI$fmyJtqeduBxM(@A)8%Ov$aVa|8YK)!p%GWD2Eke&jw^qB0k z-mPAfIesH^{6^;Zjp%(nNf}==NxfUl>-Z8_wMwNPGX>I9U_?*X-+pY5&gC-z`(bKa7L8*U0@a zMm+t?Bt8AjoZDbPZi8W&o*4AYlLE{3bl+G{OwqcW?z0Tf%^P`c-dM&1Mm#-elAiu+ zUdMmHs#PjIG3b{k1%{sTIX!x;o{t`V58nN9^*DMqtlb>$uGLIm?lGOOVvRgU4vd2+ zjb&6ue9cKx#_}f35$aM+n%A)$ShY%}L1qACP=V%13y!Z_4~{J}I@K<-m8`-yq>X$- z+Q>TqjCfnsB+G0?b3P^w@-bK*mn&wMSU>lAQ0Hk)%M?)? z`NV;-jJ1t;TE`@dX$|u_RtKwAsr1AIfIKPC71PWycyPBLhn@;~I;z`?N2^eKPxO{u zPU~BS_str)9m>f2W{r5-*rYi|yKX&m-Zu;KzFC&(i3tIDQlNRFcO9OxZqbWgqHdLP zb!_MAxc>L~{KTQ1ugxvRJ7((5(TWY&SN8e?(ja8T%HZnJCWNz4qx9v@`ZY?mU%LLM8VwskhJW!b_FuQIo zIfuT&SWg_H_Oz2_m>V`SH*92X*odcHP14hj=FAO)%nh?lPfRArlLE{3wBlG#G#B=? zr)8KMHZnJCWNz4qr+rP*(;nu`4TH=LvrJD+ILMO%%l5SLSWh%P_H=+{m>V`SH*92X z*odctOw!Z-=FAO)%nh?lPfSY4lLE{3w8~gdkMBGkY8mE+jm!-jnHx6Z=?Ihbbci`~ z!yt3REYlMc7xJXQvOTRf))OtS%jsy#FgI*uZrI4&un|wknxvT4I7yoHsa}Ylk{|oIdj7xbHgmt6O$wIq`=VA_;d5xay91MOgn8~XIP5) zVI%Xy#xl+_;_KN-xX;}rPdd*sXXY4W=9py~WHv zX5<}eM!cPCl4bT>^E#dbR;^NLiHR0jQeaqS50i0c~W56o;DckiBqFJz0@*%#fYa@nxv--&H1zo z$fsRcrY9zB?`ve<*T}rD5lvK=z!*U8iU;pz9Rd^w%j&JZ8}N z^MuaB71rV2MqrY%SYeM zHDBeiD?eh@X1DyY`o1cU6FV+Mp-$>Ne91bzW6;Pu290IhVx*pYB?<2sG-)Wvskqs^j?aTtt5mvU z7E10EXi(_hEui_LlRLd1cunq=Gjgw-k$dHg=-r-#83B`q6{q6+=G-&~a?>2k)MFM( zdI~g8T}Fvaag7dlTVUSpqsXtsVAp)I`?_iBK~7!I^W1w z|BUE7kfe(>bZC=N}z^YX$1(|)4paQeDi&FJ=&0RCc_A40&v9gixv>4G_#iV(f zcGrsLjGsZq&n#1hNhirD(46kwt9ly=oC#85uqr89f@&nP-wZTbS3eIaswyr4Exs(otZx4x8ug z+0LsnHZ(FeG?uZ05uNQ#QfC`;ULOte`e>G^b3p1SFsh?=^ckJbzFw92bR(}?HZq@X zZ1~w!>}}5MImqle%gmm+3vGr1&9id1c)zG^d}f#b5nh-1b0e>pFlN4ooAU-@kT(#s z%zT*_Qoaf-map~$Ixe55dR@N9XXN=GV;QF!DW6kJ@~ zKd*5{r?beba&Ll>dlQVj-NA^?*(SLk7MgRj0?5q@EK}#8)KOq`KWKZ->~vbMTEq*C zg9u|8=NZv?p-JkTYtFPg$h14l)M4UA+oQm2o#{^J#a^|Dml%1)oUx3T8qs-~N$Ol+ z&ifre-tWLNb(r*#jsmlF&gyht+*`3ZCy(-VC8hK9DSjNRhblzf;Iv1JqayyWh+p$a?CX1w_z^IPScMCh6cX-tz z-f0}fyNqRAVnpZCB)rwwq@e;$#oNv6cpF%?N~It(KoV4-Vb6@5Ul(Zba`xNy_-3NuFQdXU@CvK;DhVGW8hbNl$@U=hx?Sde?i+B0gp0a=o#PPaDy@ zAqii!Fv;`6C(U`P0_3R*mZ`_gjr0^4IWMR@pWEqu(`y#-H6xcNjAeYoh~Br8@b+Po z)VtNZj<14Mt5oVSD9=f*PbHKOwmlhpZ(Ip=YZ^Ek`YVe&*e3e46yr_(9x zJg*kUK@5y#%rT-+`JK+%UX{6KBXiA0?m0H1vyMsX ztZB~2%|JeG#xix7M#Kz9R+6Vyr9!L)TR;kosQb9Tj%+`rc=R~hs#FLG@PTyF@$wqWeGD)4|&6&#r znag6CI*j+Eqrj++j@R=#orPYth-u>>&NA}810y=mNy1aFCfWX-Xg3JO) zP=S&5PyLb?c6u-Innhe-%S)EY^Qe{^xi3zuD{Z zE>t7$LN)R(RAc6UkvXRekkbXr%%8Ej@>gIa|C}>=5&7#~sKXKU5gI{qTJ#8#)7J3X z$pxL4%dEqDP>o!QHu4@+BW3$RlZJB0L!+)iZGUaz#Y=cP zQl4mv?TIFG=;)8|am(`U^2ATY=Wfmx;}hS>6?z|hl} z=R}T`rNu5QxzDY-{qoM!7cEo7myCQ~z{tqom{UbxFt6iguxgb`D-6?RMS*^*Xr>-5 zxzC<7wtQaEdHI@kiuk&55Z^GC@l7M;^DUDspIgm2y@QQA_<^zE5T1(L%`|8K$+(!X&9|gUVd(!B7R|HO2x>GiZQ+X%)E}Df>o7_R3IYp4?6j`PhhRyP#z_Pt88t>&TotF))!*hy8ZhtlM zoT4$ktZ&Zai6D_`&B%)aBVNjhjj6+LCI7|ydC!#@PJ3=iI4uqPFK_F-Y;GOy zMKN+OijjL!jGPM_lZNvYx1gAF3kt|BC@j+y(*-i6Ktscw?NxeOvY&UhJT0}K_x8@y z0?Tm!u95q9joiO$#M5>r+0UDA&I^Y?UO2=uJ<+?BCk2+>&wIW+Ew!Kbj?UALmf;? zFlOD}&%BODfmN$iT4A0^RumYi+he@EaJ-jGIxmm4P7#L~2XUyejKhrSpmnAdSQShY%}7Y-JAQDE6#UOe8* zyE`w(T8D2=8+qNav5e!5>E(&$e7XeW(o0*>lE=kBbOJ9Wt?M7FV8WrV-Z-jN~ISXRe4ch#LKwz)oWyCspqTrcV1p#og%`> ztEP=S0br!fJKrSFSFL#+=YmzMRGMNWFH;H(&sR(Di@#2e#`MK6?>xQ4GDTcy<_=#yp9XNs#Pj2FdrZb3XJrJm+s*W58>ehorhOihwqCU`M$U@J-ouaj+cW~t5kYm zzD^z#NDmuMHtXxU|89wsMe}B)b?3wO{gr-`{&yG6{O)c1ZgSAPLr^yF63iVmmv(FK z(64Pmc8}--CIoiu111D^>H{Xd;LzCnx~w1B|IVcU-PJS3J|HWD=0k$A`G^2xR~XCY zW1u!~=ROw`0=x7969SAz@)IE@1a|8KCIq;(B7b4hJLztrpeR2f%|Uamplm+XDeuv* zWkNRGc#+wd5ZJ2^n2_&%C8lpzM{n+6ZrS{gH{VO_Ui*Cc$!l=^JbGd;Pq_nrVzIFD-ti8TkT=c zeBD?!-!xXuw?TQ@zt7KvzyW>0gutWwfC+)e^Z^qB2lfGzzWk4wsR`ec=AijOC&>lj z+(;AFKe!K=EV=&ex&9s9`j72@Zo>M9^Z}EntTNFsZ!ooBWe9`ospc-NxaPd~P99Lu zSD)nn<@tXu|Ic52VN6V%HE-d|ynLIMYkID9a)OPS_#nslq<_*d{GZxp{Yn2a6KhQ_ z)C!qcb$-3pB8KNv^VUvSCqYB&YbGYvtLDiUW9an70CuYRdHULRa+_-56}_~_`WvGC zA!{pcg#~lgTEtLuYMyeu);abiH9R(d-4)T1eTkU#zq@T_kNlqBu}A(WD4RbCI5z)c zEStX>tL7h|>c~-jZYBhd?gJ(Sj_Cs?1fI|bOb9%&510@*whx$K(FYgXt$X~*#{VXZ zx#iqy?wq;HcL&=F&A)AKs`;;R#pZv;m6`{Hd|GYbO_~(UUAY+;2Tf(1+bj=ilekEi zbsMc>oM0dce#m) z4{P81(4K4_WW%;u^*o05Qwx7bZCJ#>dg|QCW;r&ckC)30yh|>$Y;TdlZ|kC zCzVHYUl$TiujkPHT}U{+w?i_Z6@}AGZnC1Z7wnKY&ER@!YW}L#G^60D73VCd=1i}} z->Ydxx>MWy_O7XF0SShfQ+G@@h1Mi9;q((&Og1vCkZ^h{hvsx4;q=BVI3|}{Rmbj? z6YJkPF{R4U*XrRJXJxHBXjT!F&1wQ_^%};qsX^^}u4Cn{Hz9CJA21YugIDX*qFF1LtrsH%W|u=c~(I*%b>{(bF{KeMf~`xFo3_bP&?_x4Rrn{3t{aX=TX zbFh>gHtKRXz0bjfU9jOu4ph~dZBSf0S2%rmuAR1q=ZDP+v){JNzqZfl^EScmGy8yv z%6d^2HD$dSEA?gl@e$oEM&jQXiRr%51*n(f>e^~PPRJ1=n zm5qKbT*ymp7XP_2b~JxJv*U-Sj3==kh4W-V*_;7N=b6cgL$YWo+w~bS z((pW;-(db30?a?lST<)GtL7}@oMxery8)bBzImQ;h2|Vk+xYR`p9z7h`+y07PxJv3 z0`zOM6if(Q+XqYte6kOi5cpIdFd;x2ka?I8_;epIp`tIs;F9GuvoD8-N_1OteV>EL zl4rpeb-(*e|2vbJ9_ZrzPmlB%zrJv zd4qA~=8eX=&6`1$_6@zZ34t5?fC+({`hW?6&-MWm0-x&xCImj;2TTau+y_hue4!7R z5cpyrFme52+~Zx%06c&@sMO{cZ{aF?>d#OKL7R}rB%R%!_ zLD^iAKWe|(`!K=SxB7qyfp7N#lS?L>x3Q}9h0}*=DBirI3kjzmqrrN=_lNrL<8SD{ zUr;t50JJ~8)8}qN;I=+sLg2f7z@*Q2*hqdP^Sz?W@O%BwO<4c?eZYkEPtd^q0wxoh z6JdDyxN_hC{)Dk?uI;k=LBFO6S^cmNm=O3;A250RWOEIxs%(VgcEt6P88kNt%H}3O z1@YrPD-!~@_W=_EKj{M|?1;~>s>FoT`*=s(*oB1CyN>RNVS#;tzoGvnK*D$Q*_sfz zvk#ci5Zuf!`-*tgOhug8#lwc+)-KDt`W#Fsat|@zzQp{^H|2!+n{OMJZ*J?>|7pLz z36_4=2TTb3ybqW>qd#Q6MFuJn;q+>woBy|&R{Mt%8#F%_l+8~B?E5>7W%E;G)%@Hz zr@0$cDgB}sG$C+zA21>C%RXR2;8%UXgut)+fC+)$^Z^qBzwHAi5}w^<|E+utn%{S} z7?)-%ZbA;f?*k_6yx;K4e&^k^;`Mte@w$Kc~)L1!ePh0i|@Wv26Zj zteXEA=QQ^jmv8O|Ra$@OU6>H~V;?Xfa8DmFA@HX@U_#)}eZYjkU;2Ovfxq?v69Rwh z112uMwKO|N&1=@q*||v_CS@}autAlvY?jZu(*C{A!GtXT(FaTj+}j6C2>i1TnDl#W z*zT<)i9s`0P&TV}LjUU5G9jCP_W=_E|LFrJ?4R|vTW;bo@Cx^dS0p1Z{_D*t9> zg?31s=ITLqhncePy2HQZS4-~>cm3h5Cf46?ra$a?&2uTaZeFt{cQ#;c0VTICs9pWv z-lhqG`}%+hf&cXZ6B^02|RA28`l{py+eyLqm^ zrJ!sY0jB2}%Vq&6^AGm9m=Ks)t~;Jg2rSnJObAT&0TTj6A288mBNr%gB*-l0RI{zL z)|}_b#xHUJ&dhUe$iBSNV?2dDc+*@X(~mjVc%w&Y%8*&9%#b1BRI`0%IDTl!v@3&3 zCKFi>23j)zFw{LB-H%yUKg>ZRV@v%$6O1jjS|%70TUDt9?5yQEtAb5Bk_k+e0(Y%)hX7!fC-9g^#POqz`Skd zz)(1=otk(xj2&~@+ zOir6@o`70k)fm)`?BF-Z$8j?qmy0@kPwVV$(C1{*Z|tx`^vv#e8}`35(IHJEo`*Co zz*KXFe)mwbMWL${3tx}7c?&Q1^6OgalF7_`(N#XC^~;%KS}V*P(^_xlnAYke$29GM zj%mX>3F{{4nEvcy$MoN3_T@qq2P0cS**s6czC6cRHs>0v<^{$%&3T~q>E?Z5m=M^a z510_xvJaRL*s2eh5NP^<2>~YDv-vO~Fs~1ouxs2C*lXAmxS+E$zyG1hQhxZ-?uQHd zADS$=vtQZ$ZkzshCfeETncUe-#7s4>*6-Gwcf#a?YI5yum!H4V!hdRCE~JMrGyk_E z`;{Ma4NQN_9kt4&f0Bt6=FeSg(bc)v4BAhhn>k~AqF1~|imzKjk@F&ow8_IK^2O$hAP2TTa;-Umzw?9m5I2<+JhObG1N2TTa;-3Lqv?9&HK z2<+PjOb9%x516o5uE25M#EnjRy@$B^V#4W5v-_T7j$teIscvhzq>{&&$#AC+8-yG9 zB|H5lLD_sxz)ru}STP{75C%^(7zGAG{jBsV~Vf&#|kp z4_EaiZ&r3XN||LEIZ7{@X~FN*t{5~w6_m}-1?;f9C4>DV`XVzS@c2GpLg2_gU_#)i zK479P_(H!0U(^=-N?9+~_|YMtDSAq7jkZPY&^6u`{b{Bh(l18Zp)YCE)?Q@L7Jg~5 zEnGOWg}>J}am8K0758q-p4i(o!S}I!z=XhYeZWM%4pKwHzscrz;AGiUpbVYR=Vn6S#6Dm`;G{la zLg3^+U_#(2eZYj?S3%}|Y0|;!dta(MxAb-A%c?so$i+kTl4#ATN;i9XhnMa*ja*aX zw8b%^-(^)|+@qgof^m=5$^_${VOPrIp08w$Gpw`7ux^6t-z|&PKh>9KWp(M#Jw-ED zr8#I;6_m~D0*ZP~W7(`_teSOB{ z7eV@cT@dl~^~)btyfFP(LKYSzphXt0viqB-7D0CVxgY{ze-}g`OmIPjUHBpI!Vj|x zFUqW&t%yPoK=(zNu&p{S`_U@sN4Q0y-|_(KomdaW<7@}(q3T^#>!BX8t|}NYUcf&3 zK({_xzeX;_f~R2_LKc>*ihq!oMFfSL=z<7@gIy5u>a91=ik9!nRfdQ7;UY+Xs0$*! z)30vn*R0YX=7)YC^w^?b;fHz_9nT8qhp8e%?WF$IkIP`Cb4Z`W;DllTgYsv?i~ zS`k4to#29qw@bah?P%$DCS+mPDw|23N(9-Q=z<7@lUxvCT|Dh|@eJ!?cjnZs`j2ES zbe+W)PqoaTZE zgwtIRfpCTkB4{_h*I%)JzkavSbJz@2QnEje#Z=v6?el*SYhY`yaw*yHKP(qh z4R0tH+Qmjc^+t>cjt+egAqxi+(1?cu*@$O)i-ZF*l7dQ(x|R3ZU3(A z>D)Gqoo>}R!{h8U!Ptq1+YZJ~Ol3P5J2A2CXzcV7JYcjg7-2A-0ne>R{M^!e!dq(7 zZNF$Rn}?HBKdk|$C>o|MoGNS&r?XHf{H0!a5eS#LAOhh(E{H(5+y#-^3&azVBOix} zo%>t%;Q}JwgjB1~ah||M9?lWAhV$&O@(RyV1Tn63K}2hsHpTgTo6h5_m^z$|t&e># zLzVfH#JSMwlGAd8&JYNB^b)FAHZ}KXqdY3b{-^jIU?{YZEA2qr5Oms0)qr3l` zkcG<#=i6K=kQPO` z1Hdw1Kw%C=AmDCqf(T~*Z^e;b+2a}>PH%6}f2*0VRoLqHn1 z+2e^o!0pNmh(N&g!vqlsI1x+`fyKL#S6>$IZO}W~{4AlxCiC-;SEkTB7D0qp#n(~! zx+=Z_5}xF7-3AQ9ko~Bxz-{Ar?G9c0_(!{_VZ6p;Y)9j@H<2H%Z~|V_uv(^J#--i` zpF>Er+Y5v&yi^(euNxIX-Q4Yh2!wlF5JAy(t>l_1z7yuZmZayJsn-|;*ULAA?cpt9 zM|hio>7l8}&gY5xXzRsh><=;BTmquK+AK z2KDAZ1Of*4CWxT&d#xe*jyd3T_(7P3pQ@~$@{}UT3L{p_N(2H%t|o}AhtCNhDa%0Y zZn!=r`+Jo=hNqTT#K#%+;}R}^KoATS?KlxXu3iDHwmPD{Ivj&ZJ6r_mF_e7wB3o@Vfx()KG)u<^NI)9sf6cR9%nmvuI1sjqvzVU?IaV7 z7%$+thP7jTo@+y`R8teOFsv#ZE&)~+5fl!W0uw|a;3PId#MfQirEC3E$c3##?7Wr( zlrRk?T;_?L@4%vN*6)JY&3ga;t92K;SJzu`I%LWgM17kl5pTizaWhuOp*ie05gex} z!sUJRf^iF{2$5s=nZSBRvsW3Rb}b_jHu-xfk*=NZgM>MGT(c%0j`6)uW$bNDuIEs; zIWBR3IG4fW8`}H>1jB_@Fv5Us{%n&r9}QbLmFFhlLjhG`klG3(g6jOx1rZ1zxgg^8 z`*iK@w}9olkmb7w0jK+7!YnKy%)?SZw${gswJb*yX&6Vy!itrZFFlnAviZsd5eQ$qAi|bLrC3X&GCIP_%&A#RAI8@0I!W8J ztCqHFHrpC^FSIp}sh!_Ew03?oMMGPow%FE!5e95)tlaGL{9eNfyp|PsovOe;cyUBf zz8_r>f$)VxZU?ooaGzk7y4zhLDE zMi@+Iz&gSj)jsQJQ`knQ*qo4sEm??p^pU2pH92YnpH8uJLj*#97epYmxF9n9feH6# zYMCh9p(SjAocwM)t~RvfHAWY+`fX-=y1;jXR*_TBR|J7F7esoe-^J4JR;ADVa1o@( z$7!r6BE8e^Y3cFUs*<<);UY-i?t+M?uU{MYtrB+laUwXb@iUYMqMiBAFS)gkD^Fl_ zEO$LX*cJ{Hwugzrj&O)@KsZb|FyMh2#}5ks6b=qY3WtQFg+s%!!l}aX!l}a~;WXhS zARBgoyA**i&;=0)gIo}SFxUkV2t!;DfiTns5eWG3lGV8ggsEK+fiR5=A`phTAOfLq zK?K5Z7epXT>w*Y`5iW@E9=!qT93$1*=Qks&fhRSwvtZqX<0#=yP3**F)$Y`|oK|=0 zRt&59d?2&uvAO$=T($c%b^YRd8Ux_#00{Ux005g{I(I1oVR{!tAk5%`hhJOcu6>>x3QQ2H}8!X#gBIFx(;>6mAm^4tD@qp|g2x z5eR>BK?K6=E{H&w!vzrtbGje`;m#)*v#j7{pJ@k*o z_5?gMSEU&3sYQ_87#Bn!%WgSQkVzo?Ba2I?m;={4L>Og!4}JU9B^qQ)hdVHCXg;xnE?d!rUya{9}7jTCn5EgVn1Oh&#Xr&Z^u&@gv5EgMk z#9Op}4|u1FwWuE_g5$Jc`X{_KuNF*yKyz96NFK2QL5L*?!aRH-YzH~~e~=LwQ91b;;Nry`(3 zP6K4YSMew!5LR_T1j1@Ah~WA>7)kxqsSl!B!q5i2VR?i%g^ew@ubqdy{-6(zprJHO zPsqYZ0_@Es%)%_fJj^C+4YLc|!kohPfVnLk-w{R$2ZS-gfngpXi?_O)7lE*b3nCEK zbU_5dS}uq{Sla~=2RAOc|v7epXz>4FG^ty~a+u(b;!5dPwV2!w515P`6*3nCDVn7)Enx$M_w%*B zq7sI}^t^W3d0C&E4Kvu4ax1#WLU$D+4ciK{u)Q!3I|y3?CcaPyZDAK-d)Q6b5%vJG z(7U-E5eU1xAOc|z7epX*x*!5!PZvZW?B#+8gf16EAdGiG1j61fi1w#IXdF`gma$CJFKS zQ;64}LcIPI;`Jwxec?b4B?93f7epXTbU_5d!7hkEIK%}J2#2~L0^u+hL?9gQg2?2S za1{Lb8PRwLI{`Yc2E@+y%(R{Q^=doEk zToc|zQm?JXYr;Fwc}*a8er);oye52Pa(RJgDuO2X5P$GYcdMN*sJ)&~-=E_^6yr+* zKE+(+ccJGe0@oM0AOhiH7eqYYNwuc^-tzs?^8J~Brv0_b{}N9vg6#h7f(V35T@ZnA znF}JEe8yb7O+J4E5`Jga-Ck7N88U%eQBuPQ-6!>FpDhUyfMB^ zpwD^Z6hkyrT~5H~qiw)eUgPAgxukN2muW=l`sp_2=h<~Tf?-%wlE!#=ioJ7 z1`!C8T@ZnAtqUR$u5&>I!u2kQK)AsL5ePTBAhI5w^bnraL)565JzB#C&9&6V4Yd!m z&qUvNnj@fivk9{>yD$%P3R^=EwuMo`_Amy>V&3EiL?GPkf(V3LTo8e9s|z9!ZgW8d z!tE}IK)AyN5eRp>AcAuL34T~^V&`AXoRynRS$%MSe&{Ic0tA$GAz>C45$0hrVQW}I z*cO%ovW$0mFcApNnfvDmM@KaUy=) zPJ%7iSeNy5Kq?%ftwNY z-NW+TlYsW?5@umCvZ~Wb# zJ9^GWg2QG*}_|OFr2p_p10^ws9MD%RX`<>O{s2X-&V)f4IWJ+UO0`dQscUJYW{Tav- z-SsR0+v5{=C<5VA7eu_f*Dq`5RS7@y<3xHNcTsiR=YE_B267kT4?d7X@9~d*c@FjW z=Ipw)v+OdYg6+!*SguOIS$4HB3zLO;xK7v_ZViGy%iz8LH&>`_Uro zi`(H^{2-p^rta4gPt@-$B=LA*8cz^ragq?fO>wdj{Gz8wz?!U%c$|0_w3gh z4zgcopb)S$3qPvFc$*;}77HuhMM{~(3xsLBP>A2?6e8ZmBH?F-IbXbp=K=GQdlqJ* zg`p6BRhU{FtU*?s80bv>+7H07wVfc;3xL>@8_W|>gdzSqnmOX{guZ6W`_e<6n7A~tCFDq>l zUlgYCC1Dm{6`~xkh=l$~A72nJ;`6|~3u<8~ROWildM= zWIWp2@bSviM+%d~kA-RcM3}`-h4A#5NXY5wL-8Vh0L)A7nWw|d6NS*`p6qv%o-j|G z+!&$X)|;J{+AB*PI+&i=4o_B|zEYSZel5h$LksbH(ZVo*R=yN3;upZYJ+n2z?g!BTa3$SV)6m4`NA7Te8BK`)tj5mR7Za?iZ{ z)4Wg!(=vBl{~quwng|5^VuxKJMIb!nf(Qisn1>x90^t!CL?Ga2KI{k)2#>iS0s%h& zVn>KTc)|q{2v52o0^unaL?Arvf(V3XTo8ePpZu^WA`qT)K?K6{E{H&Q!37ZrFS;NC z;UyPDAmE2VEQ$z(S6mQT9QThAsO^@pC7O2>zH|xS7g*mv7I&u&@rPtsSQdAiF$21W zG~Ri}FwLZvGz%L|;h_6HBiy`ZZp>mV61If-vE`So5L@^gOQZ39?4IraaT1-MweNn$ zTu2jBY0n&44j63eh394M{V+bd)3mt%*E#b(koUV7_jCShX&FBqtc0cMr)B)11HhLx zejNGo#?K>P!T1F7m5h%Y2)>H(`vGA!!@~O0Uied3lyv5q#*gD6i*sk%@pzlm5tbw$j}HTN%rR{z=0iK? z7~Z+E?P0Y!MO?f(<`~hr8e#nE*mk1nK-bh3)!osFHESK6>tGY+VRm6|Y&&r?=or5q z|FS+dRgC{nna`)p=j|i&P#3Xg)gp4_IXy2>&BkNfAR}JAUiC9ggx5-r$M88FT`LFa zI+(=4!ZZ#MW^t$x_tvS5;1@|n!VHKR2Z|SQ05C7PXIIZ7?dnM(%t&)O7Z?v815&)< zN{QbX72-EWh4_t8A>vJMB#SeMSiC|Uzd8!Uua07C@s6^16dK}jJo91|Z)T-T;w-{6 z&MM5}pM;1vn}~&(NxXiG>Kz{X!mKRGrs7511ellHvxvuAL<-?gwSLC-z-MI@Z#$(- z;`YKc{#BU89fXLtqlmS~w&F$H2AG%JvoI%E7z&N;!E)iFV2ZP=k|uFCVH$TAW^oT8 z;_PW8i=86Y(RL9p;?BUlGyC(RV^Af-&=L}3~a7H07fA>tioB#VcN zSiA$pix`1<$vumAqQ#@o5RdhU53(uViAtHolZ1FY6K3&WLc}{o#OiU9co9zk<|X$m z%t;o8LeF}{htm}2A|*}Y#lkdRBFy5yg@|*Rkt|*+V*TSn@giOT%uDWBz>_T?g&zF_ zA97Q?o0Kw%Hw)8vi!h6~2@&sB5i8e?;zhgxn3vqMFsE1;3XSFB`TBMh=TRk1;={r; zJ|@iKBSJf`9uhC&gTTDxo@M_p%br5F^NRW7Q-dnUYf6jXp%huedFegv#kHw4l5il>gXQoawQxrnbsf}xGGf#Ur^@L9x%F{Orlf-X@Y5Y!@ z#qWji^n-|b`dYk*Ujg%yd*et{whr4 zZ^A78E;K7Yix=@HU|w?1tejz1D7Y2m-{d)VKYHo=ITjz-lb2+KJ+Gz0G-kpq=0bap zZ4obGe_&p6&%B&zUMMs?$J(R!R;r&o)GZv)hXozG9FE0D_vB%y;v{h@p~W5| zUc|w`yyTw6KHFkbXozin6`ug?asC|0@bgqPFfXn8`GXJWDK=&w@SvN-;leadE6m~u zA^PfcA_1peM;sq5WmAN#P6^R zt$&OZ$M3KM@jL9;nw4|S3WbLL(d=A4gl77@zTo3l@-n;P;CI-C_#Jj3eurI%`UxU- z0{uxGzrzm1@33QQrp_}{6#N8getkKtsV6M1lczBXgWq8n;&<4E_#Jj3Jk2L!o<@t~ zci4gW9d>NZ)A{C!Lfuo7bNcVi+YIacH#i;EX=F<@SD&rDrt zrYKCYPaoO5ey}h~p2jIm5?2tWaYbPkR}xzNEH7Tf<$!s~J+pF=S)tHSKYd^Gj;56+ z*E}qzl9$yKCyA>I)3}Dvt~;xWW4sN-cpF>ufai4nCNYJE>rUSuj{O4nKhV z*A=F5J)wD6TfB&C0rQf3=HU|aK*2mTdklRL2KX5Inm>k$=(@{sEf#Lc!$yje#Epe% z+(ekgO@-(un;FUC<|1JMUIaH3FX9HkyyTv_`?tBH5Ejx!(66<4ouGJID`gV@B242p z!YpnpM7-@pZ2Y&CcoDY*<|X$m%%v8FLgV<4<-#Y&6=!E9P2!HiH0~tC@1+Y7XE!5R z+*QQNwSzc*K^=%+P{-B+USb0nAJ8S-zKBz7)FU%X<2y z%J*!gP2w5CG@dEU;#oq})44{nc#eqG)9KINiB)%g|a zcoE+M<|X&c)HP;`LRiW=Vbk%;bF|d=__n3;^s&Mu@e^ShKNV*2GofAUKN2tEhrqn# zo>`e}Rwy)F>zmcj3r*_>ufSA4UnvgW842;uNQievLe$T9B33_NisR)G5HF9gHB;A` zDGK%av1>nGqIDZ{zeGn%S1q=T*QJfQ@uE$heo~ku{wz%6FT$`ao9IXJBK`o(OYWJ4 z>&ya$u)Jkk8*|G;ea!tz9~Nq3ZoIFPhknyl?~H^N`}ZpLZ;H)5i+#PtrqB?(S)07p zv`t#8*jW`j7pAdQn8h|B+N52?+9VY(Vgk%d?wP3@%oK%sn=~1}y+KQT_gTD_RDBFm z7|h8EF()g;oUG9L>_BnMzydJ?i>+C?(X3Et=(BzIkGJ}09G=s>-ov513{#vW7Q!?R z7g`%lBVNR*fqBV2^Kg@SpwQ4peS3KO4?N(_t2|7vI7ysAn8uMp^Dv!w5k~;?l6&Ui zX7fP7JTx1htbw--9G~E)jqDATNNs$A7rF8I`DN^L{w6iZ_>1CUKN7jiZHG93w=$xs7CT9ubQd#EbZ6 zU|w?1;@xWTC^W?5{Sfb;Rlc!GnZyNzXoK-~ZzB^95h|2@>l6w~Cc8f!y=Y1Eir4?rl zB~9X*!ZfZe%;H+Yuo7Emb@3vu2Fy$DS@w5W_7uV@4c9lG7elN3w^Z6BZY{+0wb1h2 zLcEBZ1M`x5mhYXGFNJRTvfZbu^4(o&lemX4jh(_Q?kPn5>}4d2T_QFQx|?_rcLnAp z_bej5fs748p~pNZ-m|No_EpLx{!N(1{e)TEUx;`UM65mb5ijE2z`W$1g~1neF${&q z_F%d2re1LlRMI3KBuwK(VHOV-BF>>kFq17}9W9C%@c>|6a?b+dTcQ|{LPLLMJgf*% zyh%!##1n;SJV}_vlZA-)FC$qzMa1HrAYR1dfqBV2i+7L3qtFnK{Tho26z^iCOyVWN zH2zzd#mj_0ksyd`cZovY%q zfy7}oUOs%Bj8~`f^1I?BvETF@_oT7EFpDih)M+9TR_8_PHyvEWUx9haJu`&`ZZt(9 ztZ5f1pU3L$Y3rt*Mpm9$6*7r!LJWI^S?mzP(*P0kl#3TJ1Lh_7%+tf>i9+3zje{yr z^^xH=y)5Zo!8XI2W7X3Tg-PO2Aznob@g`bmRtAd~aS$*sxo1|eUXIm6!L1wK<)Pj( zJN98g$8w$=uVv-oPl}Vo*@YH+Ht{0P3d~FHS!}H1WBDmG#J2ON_nhL+4BzLR;%rsy zpg2jKOPIz{!Yqy!qOXn-u{p&*ix+WDU|w?1OkvR1^r=FAC*p8HGvWvcfbjC(PpVLU3FXB?byyTvF!h%G4qEPqLVHVdFqJGvBu|B<~coEkC<|X&c z6c$U;6oo1F>3y2l4_>>fel}7V%*hHdCo9C9tkCLbLvhT&0x<)Nty#fZOj@DPP(Stz z*z=nAH(F_O&6}(8vZdlAaVudOw-(xUXA5zRw}BXMV{0C;#)%#%G+cN3_OSmSc);sQ z)yH;P z9tX@z?wJRyrJ@H4=Al`eA6~Wjo8IOkYIFV;7^Vc|;S9w|;=hDxJXM&*(}cJ-oNffO z7%EzhmS8=aU!X*Ajn8wS6S-eV!xL1mV ztr+Dp@giOd%uDWB6fDSM6bj)l)*y_-^5ONg%6FHNCh>M*8t)Kh@lGM){MSep?=h0c zyG1PWZQ@0|6_}UYv&dMY#mE#aGS|4yhPZfjq%r&8hGpePvM+1{e@Gj)t^4FN<${&Z zrxXZt?ZPxZBh2EnLil{nNEV+L3EQz^o)ja?hM#trwk82)ihE zTMx{-s=Q#eaox_bz3r&avaS}X{Jf=DN&KHMjc*IH_>K^D^{x@T9S|{xZ;BW34Pah! z&m3Zv7#&hDht1BY6RI=nEkC0~;LH0Q-fOA8K2junrbLL(lnC*e5+VG3W&}@&M)LTD zNZ6HC`Jp&IWdg*fOt3YhSYAe>6vFPTO2%cq;KhmJexrm~k0ivDzYyz@goyitku3fw zVh`3|i(_FD5DSyAwQyKv#&8s>2Wv0q;#ItUGuYhvugU>yjf7ZhBt*RaI$&@X6C-(S z5wUXqqQi>#GcYf?XMwT&jDacC%gJ*Z?{-wqqKZ3}FpX0Svp9_qafcbn;kne;XUg;wB>IZ$0rMt_#dd?wLQVTBAP-HGlRj*t<>7ZQ7=IFQ>ZOLQ#^q zr4aMfLaeeD!rNa&tW7r;FXCpvyyTu)!U8>7qF`;>?DBg7{BRKaKfnBnu%GRNeuh^f z^0c$UU>q&PI9iCc*+O{Q(MT3|GLpw#jkLyHM8bHU72Amyaa&+sa?k8yEg$Vt2>aM+ zsOvvHtWbG~N}I&}g_!0RVw@|4hXagc@jxSaoM@yq9wZX>rHB2*i}*KSUUJVo;2Dq} zD1`kQJn($O8z0rf@k*P-V})rvPKeLK3gO`d5esyTcoB~V<|X$m5Ec(I5Csp!`sSD( zFF6$FJS9!yxxzGFAk5Ody?*5?|Lc@CiPs3RbV7)= z6hf5a1|wO#Uc@3^EndW{fO*M1i-^^JED(h%;xzNM_M08$!Mm91nmahFU)L_ zSOQ3+6hgGP<`a{?efYebJ`b#X9@OX)^Stu;xB?~d31J$a6lU=$A$&e<1gkrY zXhvQT$H#(!_*gKuW&~>jX@r6qLB9T3Q}a@{a&>Pj^1^p;nC@16y`eZsd{dalw}j^5 zb@3v;2Fy$DnFp)^qz4KO9_;$+?N)a&xt9ySXJWcS9^O@)B)%ua5*J|>KM#cc zVneNO#f$h2FfX}hVXzR8VJI}dBVwF&t2q5e+F15CWs%0;g?Miw9dY`LSaE*UAB*@4 zFfX}haj*c8aVS*9QF&N@m={<54Xxr#CB)cOh_R~>afTVmVj*G$8zPQX;y|nt$JPR3 zB_IP*sEr}5y)ap$c+)9m5~mlYaRy-)M+y;dMk86ANyOrf5HI4iz`W$1#luQK#-q>> zkM+1g6>oN>OyX?9H2z7L#W{tDH-||0JG;fK;zgVVn3vqMFjx@CFciW+)h$$yyjEat zN#$BdNt3vsFpY}{v8F&6j$rl+h+`cx5bKb!wd}Djkl9lRM_Kl@^B>bj%6~ zD@45GL@dma;+U`mV!{$z3zJwF3RRfe^%awHD%XihiqGH)@fkcJRxSt;=U*ZgXOcKR zg9pTC@UXQwSeVD|L7_1Y`v>Ol6z6Ou#Tr~8*5C>;t0+XAbB$mPu83V|PZ!4;Tp-rq zVrv023rL~IePin?-Ze^zHMl~o!4+cMC`7!;B37;|#jyq#h&8y_TA19zQ0Q4MOgE}r z_b4gW;0n`tw=j$M3K8diBU!vp!~)(Wj#arptjfjK0%GMLE0RJ(zhFIL`cUznSIQ(l zE5x**FpDn;5$`1mCt zJ~5KTk3}rrd*VfW7nqmavv`;yVEHKYh==J+#rs7m@qHsgeBX#Li@ypH?{_0v{7uB- z{V0yrq(H1D#n$3=SUd_n;%#5W8#1Ha_Xi2nI9Q1FkV3?p+DI0s60vv##j!#Xh!v99 zTD$=kk3x@ln1xmOW>d-}&LYHT#)VkxCq%qCjAU_k5sNpoIM(_BvDOb;i-#3`tWOFJ z@pv7q?A~DC&b!2AwI7oM7)JXEX-K(BF+!YOYT{iK^BHW6{dC_!HluutgNJ1 zdnd&GQkcb6g^06?h{ah!95+xPZlKs&oWT}{LSr1>_c6(=IGZXd-Wv+>(G4MHKZJIF z-blQN8v^r^dzSqW%br5F`!n<3xypYRrNw_gm&BCPaJnCAnsDwTK-ta$JVCcw|%sOJzrqvxW}B_Gkm@{ z4x6-uyXQ!ZkpaaBf!PebzrFwAH?o6b5VSgjicA#M(NcO(mTmj+Jyktfa%%tW0B8 zDERas>c_lP^;3WRdZAbKs87=irdj3XG{s5c>B2OgAh~FpK{Y!qep<=IIjgB3=y4OYWJc;pT}#-IKN1 zUWn7}UDa!}bW+uSPVUx!Fhi|+x>{i{UnInBUWog?Fr0!!@hb5mUJ1-g?wJ*=OJti- z2&XFd`Wyl#1>vRMecqsz(<&>c+rexz&LQkwdAU(>l6aFajW-L!8T4?2coDA$<|X&c z!wB<0A)Hn7(9(}29*;NIcBd07s&!4|lvF}!#B;F&$=aYmO2?@iwtcU-K7x6A&UUJX8 zOmAK&g!60l&}^>yU7G23Ve#_^^P{SVhZG0jl^{&xBf=~`Dnws>OvL)?gW^Se0GOBD zGgC8|DGK$z+RW4YO+8^kQJ$Vs7`*cp;+?M$?|g;u^qh!!dQu#(dVzS=i>-OWB1?8! z3RCvhrw+NXzhduQ*BkL72uLg<1Sbh_?D!#BQG7 zi5Kx(U|w?1OwDShDEQ5@Y5jcNynZkdE>FKJOcMLeRIP~?Vs1}p_4AvK!BS`-mO^7| zR%SCR6nfQ9?|bIAz0CM^Xkz6hSIi`~R$kgFFYQ9qPlt$^%Ea+Sf8o*5@!~s zaTZ|~XBEQJY$E1qM)4w!1m-38%+s9aiNcgU{o2&iVU?#j6()&)7UF9vgjt+R2v4I# z%+nm=Sc(9|QUq+x)1S=~g(-Xby{RY6;H#eIQJ5soE5z4S2(vi95T3@0n5VhLi#P_D zm)tW?!8}o@dunox?2m8x>wf#MU9U0EEKdt7OcECnrg2eW78etmm4(EMxF9euxo1}9 zGAk6^O7rV=(%j2GDlbbZP7;?E;%h2|SzK0VUX~Ou;u65TwXW zLx?pPLi4byI96H!vC;xt^DxFdQ0V2s#;Wy!ayvbAAF8Txgo~Gy9KrV)=G)*sSx6ODuno+3L)Zc zXC#Z;i&(s^#PNj{Kzv~Zwia(*i$|eHykn|(J1HgB7Yoz4ixBIJg^0JCku2^mV)1qq z$7~A_vn|+KJUndhhC`u8JiHQ7`Sw!EBz6hYI9`~=y@iOkkC80yD`N5X6fa^YFfX}h z@#eR96nezNfJpJ8QsSM25bq>}cqbu5yn~G3orFlZfKNdCi(|zz5G$UswRmGK9))mG z?fHuBcYGD^c%{VmWe71{Bh2D)Ld2V7B#S4Ago_#PXz?N*1IAkyjHx3lYx23Jqx#xg`?1;9Z#&{-L8~) zW)`OLPGJ`B5+dGzjo_O$L@eHI;&`eC;;9;2i?^`FqtGKBW-?T-_bVm7cU_1jBSNeg z5hC8hM)1vkA{OsH@gm*}%uDWBJgk!Cc|oB^Jj|FV-qT8nwID*Q1rcH`h!F9fHG;Ju zA{Os)@ghD3%uDWByhSY@g&y%R*`j#wDkYxZgm``v;`vR8c<&p*dR-BV_m+4O-vs6* z_blFG7LP)Yc>k*6{h*Xs2P?!nSRvNI3K8!oBUnWsV)4EaFXGq0yyTw6TioJN=n)Td zL@M8ane81yn-HIG6yo!ZLc|+nB#Q$@EMBX45p!T(a?j!|Veu&Rh=*Ib;?1O#_|5_$ zzOz7>#TkW&H;a)h&Mac_rWY^bbilmip2frJR`wSPJ>p?nOY!Dc$|TMsOyj)5EY2rH zyakM8ajb~Nn_CsO$q*9p04TW~`T3@_~>jCqUdzSk$mOBNz zcp=~B&tkK1B+}_P;7l5_b?{xuOuO6@@7K<EQ++Mth+X3^EduD1`GeyA% ziOoID*3=V*O!Bn5!r*%Yg!tY7A-*?22v2*7n5W&u@pS<}d|d#x=4mmCd}e~LU`I=#60aSUc~XhyyTvFTHZWSn6jrin|i`TraVQ3N#cP* z-0p>0oG65+gGJ2K0pdk0fqBV2^EA#pQRwOEJjB6#c*FX{Ku?$Bo{6;K3cq*q{U7E` z<>_#RN#fsyY5a#Ui~khD(-9)!O5ULl6EEVSz`W$1d0N3dQ3zKvO1+O`2-CyUD0;f4 z@-(^8(}k6%V-yB!Q-xT{Ak5)0>p3yTl2J{d7==mcTcv~8lxq7 zYW!Tu7`nQla&@C0Z{rLMi&R%9D^wCs5n}0sFpH-O;p;RbSv*}N+(d&Xi5KxiU|w?1 z46bAbDTG@Tu=zPSPt(42N#*TqMM>g0LM)dMX7M~Byqzy%ed{doBAyA%OYWJamCX`` zo_(wLT-JO|Jz;dH`np(Q@Vyj5d@qF%-=Zvpr^`gl(?#O=UJ4+-mjYY!w2FD6FlA3; zn|i_sQ=YC=7_9pcV%>)@i`NL@X|jlUx9Wex4GNRQ z8-*CI3Ncz0!qY7x=IMIzB3=i~OYWJc)yxxxDSKMDsV5AuRZn*)OcL)DrtvOe7XK@R zr@KYW)9vC#ybYL_+%r$Bn2vWR(lPP~ZE0`ro4=4mbSL}ALFmTv0ls>;*r z3X{Y)glT+Jn8mk*@bo_s^Yof{5nl!7CHKtJ+UAMElszrm)Dvz|s;Bo925XmuSi2<5 z;)g%++#S;gd3tfeWox;{9K5y zEf?CIH3IyU)f!Lat^~?(e|M@NCZ}ow%2*7=}ULUKlKBlSexx?!BT-FEf z?edb%V$V*w5Z{p}3oaeN~l5Z{Q0t;O5W;!y~9)#7msh_0x3Gb$y%(?y8y zbP;B879rxzDq@dOBgOG0FF<_B3$_+!BMU>JdW@>oBZgCo^JgW+cW4Xo9oj;CK2nG{ zqm1C~gou@EcJU(q37D7Mvw$00Kngv|g<+TCEvl4BTuhk8#fA925+UL(DPrYXM7)R# z1M`x57G@I*L!q%;tiPM9ILj(2o=1gv9u?wwRERh$h*+Fu#EZBzFfX}haW=I$6ne(N z=uqWZO-b>cAwqm-h%k$52oYy>5sS03coA0u<|X$m&Sn;eLSr1B|LC@gv$>KcaWi2W zw-jb^3t{*#d)ubs_;nN@ejNo{%YJjqom=A(zFSzn6uRZhcEDLA-%)9kSPHRrPMF1mgs7hbMeG7LLA;3j1M`x57HCTg zM8Pj${*D%>nc^IyqICh=@x8qX1C@mwL| zoF`&&&J-`=8Nj^cp2hi##i7tM4mynDT%@GvFnf>FPSU9T?}FXDfIdC5HsxUB`G z(BpcI{;hJ|qm)U!ONi-TA!dJth)M^-MZ5!;m)x^>+gUscJ+5o_R`H%! zO04k~Vi}MSE4qb<_kxJk<1^w|+6~0gZfq^g_7;XhV?DC}-B-o=KuPiWG9jj6g;?7y zM4S&rEY7>)7#{&KKEl@G{MF)6=o#n!D$Y+ziZvlZtO*g~Hzb9K^RtM>`Chz;-vRTI zdlqL0i$kGjoCm5n1823dM28SxD<{N#T!=V>L@Z9bIDYg4h#&pH*5d4FaVYeR^I#Qc zCM8YcNFhE#CB*$yh&VHgSezNei#R*V%}AVc~>E3S%ru* zzlg<|TO8A^Kuot{YjJkAI23xudAN$RypkqySs}hZOPIwKgorav#NsR?j{6%B_cv@U z&Mp>*LSr1>cOI$YY@nn`Tu+G4vJ11gzR>Ou>xvg~9bjH^&$8duvZv7P{=obnt@8h? z(k5{`VH$T3;_ao-^50e*-=ze^cPU|O`R``=Q)tNF)hi5TBwF+N0T_;zc|Jn3vo$E1hPAf0Uc_^N zdC5KVGTyvUXz*gsu+Jm^#%I{QX$2>>&MI^&>+d$+eWCL5Z^gkncp;`eg#o8sN4!KF z%ie)l_KvN2*xNi%2 zv9;LySZoRnv8`X&Gkn7rGVRCc(^M5OOiukAeyNImt>Pr{I$;{G7iRGWp*_n_7BAv8 zz`W$1dD+*zP_Sot)kBj$I-z;Lc)9X&i{d2lR$&@%6K3&tq4kTK#fx|oFfX}hUjAlY zC^YnoCSDF`?&X!r%YPLoiFXUrc#jaHM4@@POB|mB1m-38%*%e}g~F7*9N65;tCg1r z6(@-g2{Dx_#EJr;d3iv*i1!2Yl6&T5fAd0N%3dZm_wrihy?-16$f*vLd>NKF_$XDHUDK1yH7tS zj=5AI=2EdWQ>B@rFy;I7Vf57Jefo{c)9VU@xl|$MQiYgH6~fd1MC?BFnmFcCftX9h z);t|xo+wQ5KJ@qIZT4p6={<$PT&fUrsY1-93a!oF6~`k25RVAhnw4l)C^WQLlk@7I z&Aq%;dHGav@EsIFd z<=x6lyW%9VLx|@>Ay(rE%}bkj5nF+I$vyLOhtX!3J9HasEr_wkhw#y&KZfJ` z_v@H@NQ;iKo%Yd#hmXgIvt!h>1{{>F*1z8je9IC>;^)#wEpFJ7gtHhDFJC_LmklC* z+@#uZ=i#`PG+aQ)!bOC^X}F|H{jsMOL3W?GAOhi27epX@=7NX^tQ-4JmG$R-oQNMc zxn}GtT1mq-ge+W3fU)a^S-26%;(g({h(P$#1rZ2exgY}JYZpWyeB*+MJE`8{pek== zOw7g+vT$b=`CCsVf^5EXK?K70E{GuCr3S88 zWq6_qMi}sXTV3ZHec^e-d||NP5#BIg^R&#JcU|G3^;|R)Vt=gI)D>Y&>+taymUoO| zj%zeIgWsvDsLg9c#A~#EqI`hk&>|lZvhWE3C(38SEPMfEr)l?GL?CpyAOc~43nCB( zx*!5!kP9N~wSz=rAZVpUYMN@?Wj{d`nwd_+IYP@S`vbKMV8lD=`hf zYqvG@N0u#v+d^VlmxJAa2pkP@K?K537epXT<$?%=sa+6(FpUc$5Qe!R0-+j*3nCCkx*!5!Mi)dN%;bUy zgqd9sv3{|lmr<9QmQcXr+(QpM8TY)dQ<8prjz0x#g6ZsF{Cnq@>=j`;P)fwk)vy`G zlMxS=b~3)klW|tccJBA@x01(NF=tQ2f4^c31D_uMXTkr`vv)nqyK&c>+J2^OO9z#q z+D^}{Ur!E0icfS-Gm%|2#C_~#B-O|N;ZD)?rqlS;i zlOQiUf)NJO8BA|5g8{D`Yu2tscviFGzscgyZpH8W8fhhKD65x=*T_#*rn+-nBkKjk zHIkKMW_69kBM{9BMi|i7THUT_^&9D2@P+<5nvjLL=@R{8wD%7Y2xD9jfiSlVB4@XR zfTZjL#LfqpT^LnK#Lm00>EqrtmPe*xLHlbtk7p}_IP-UDyJ5MV9ds`1mI z%pePk6L5`PQivP5Fb~TDSt5LR+J0b91j76-h(H+Yf(V2KTo8e^AgCMWhPdq z!ZMXav{M0|H4d!T`HJ`(oUcsC!m0o|T*z}5fv~U(A`ljFK?LzvLQ=*jcHYeF!YY+S z?3|2EA9cPKk4(cl_SbSz&sGF+7IQ(Qo?rYmZMlrW1WMKyaI>=7K zEbJo8!)`!U|I!{v1i~^dh(K7@1rZ3#xgY{zc^5<=jB`PxUX%5)+g`MhhVhk)6+D3m za#+y?ksVsXo;cDk%Xic+%e7Yis#g5{EawS?EF3^U@edScVWKb(hX`B4VL(>HN*+%H z!pbg)Kv=~E5eTcgAOc}E7epYe?t%z}HCzx;y`0AL8a*eRZs+w8G?s;<;zWi>!^u^Ib^UM=q+ibkk$y8^EVTo!&!6%7 z93~-^H_Is8KKyP;ogJ0fc{nyL;Ur394LdPQ)X_0|Xx@n_nvMajWAfI{-SKyPDwofi zAH3d?kHOCA*m)Jtr2U8TZn;dqk(>AHKS@<`Q*>32$h(OrL1rZ1vyC4E#6Bk4vZ0dpt2Mm}QvO6ZGWjexT zj5TbOM(_8cqw_}3@hivfpX;7TRd+s)-7$S)WA}Bt-RbJhdlk!ohu5kITX=X8_}S70 zk^5W1l{nIy6t|;VlV07R<1DH4+8J1nc!Nc}sfxIj2M|HTtz8g7#OoV!Zj5+igN}A< z9`SaIcxM&yFCIVy5w~$c1QBm*$hlsYmT*UdUU$+*8Sk}-_g4|O^#CG>xSb0khxwKaBW@MSQG^xV;AuLBzkhAc7vQE6dXLE6Y<=${qYbkvKTyQa znfl%ErRuny{5TQzXw0KokH%zHM|g$Db(?bf4vjggYj9Q#W7WSo=k$g8H~(rQJIp!p zAluQL6K172%oA{Yw_a`BiDznyi3i+{@OrP9b23`j!o6aCshIq0EhZ0Yh>6iPV+t5^ z{cdMk{TlK%V&Y7Dmym_`3Al!QD9pmgKwd*Sy|zRk?CF9CguPr4fzaiG2!!!2hkk1rZ3P3nCB>a6x3fmhc4(@=inSoX6buoPkVvlSSg_ ziA5;ckzdvB1MPMf9ze*#AOhNOh%gIN3G*2FpMM!dEVcAjhw(9EpA9_ze?yz4BV{EfaA1`8$v>2WzalyDi`CT;%-? zK``e`U8f)KZ{IUNo^=~_JL@LZT5J^CA`N2*S(t}_7MqW8;QuJEGZ6?!yC4GL7#Bn! z9P5Gzi|~UN;YSu>EVJ%*IopH<>Dtzc!+SNaWvC#Og@3ADS9nCjb>$}(ZQAhymT=>4 zCG4t|a1oX%4T}-7utZg|Np4dFzE5;P1j0!!h|t%nyfENjOIR4W_)UHf*z$4Pq7C}E z{&juv2K|uQ@wJAYT$xS7vN#YfmnWbdRv;!}CGBQm6(F1CWVa>);S?7{ApFY(5eTQc zAOhhu7esbw2`eIVFVm#DN4DV4-h#id1y`qwsuNy_1HtXu$v%hw~|tq1Zy3 zbZepdop7D1SZBH=5eELv1OLvz>sjE2moLNG*mVN8)i{rR2j>ht@Nc!g!$TVSPQOHb zM?hzrc5_zmI~yY+`p%|=ENou+JlB1Spf1mIK?K72E{NcK))Vd@&k1hLAebWEM%W&< zBjRV)wA&GO6b=YG3kQZ>g@eNGK=z3XJfsMO3tbR_aFGil5H5B>1i~dQh(P$a3nCCM zbwLEeWiE*HJtw$5EPBssoD-zZdk?Xi2-&HUh_#83o|89S_#>KQZvsw|eT7-rPnd@Z zK-S2A+?oi4%UuwGaD@vZ5UzAV1j1D=h@9OL_CeQd4#MB)>1xkU z#4q&qQ{m9+xNH145kIc}knj&2ht6?Cb@*gITm*5hbwPxuQh#)L-AGzM!ck1v?B&Z^ zI;%F(b|-GDbBptexDDal;t_T_VP263+79LwdA#jtUNNx~O)z4-falw0I^Sq3bz2#2 z9c#84&hSM!S=+T9x4g{M#=5w%!3Y0p(JCkjJbJ}bNocB%99CM_!k|Z z0&n#S6oGJ?3nCD1cR^%^`TA?VA2&NZ*Pn!3*h`3=c&C-Ogi|PuHSBDKH$A_%f!OnV zim}%pKEMCD-^g*@pWo}<=1gQx*LS!l5$`tjruRSx%h4kDtonT%N7#V3 zejeUP7iqY;iu|DGD}q1|xggRz{q2_i&MN)Gez*wIKjMN&@AUUr`unQ%kNV*vNdK4% zBA&ip=?_&2ANS)#a9s5oOYgDv#d*hny(VZMV{}Z=J|S!iPYK(@Gs2GWoNz#RK{znH zBpei85e^Qo35SF?ghRty!l}aB!l}c%Kz8dV+?@!7CtVPM@RSQ85T15H1i~{eh(LJO z1rZ3(xgY}Jc^5<=yx@Wegcn^9f$)+GA`o77K?K4pE{I@0uz$Y|P`4Py;<~Xa3m%@t zmRApA=c$tZM+sLCV&_1dQM!5z0kua2!z*M5P|Tz3nJdN>iK?U`F>;hepluDhNluiHgCEh0^uzeMDA}1Um~fWj926K z;)Ct48}xf?I#1Hm7_4FL=I1K-|2%7vS}*6gY$NsXKKl6YNXtIne+Ut8u!Zd*6Ly4F z;egOC92f=&2L(K{;rPK}2#^)}w#OEM@Qw>25Z-k`1j2hRh(LJX1rZ1zxF7=ILl;CK zeB^=%gpXYiK^?H`u+n1acqL89!icIApLl8!WcR5HA`m`vLB#9$<(6b{HaH*L ziW<~Q@HC9HoM$3n6gP{oJ7?Q_ph1i}|Ch(P$#1rZ2exgY}JYZpW`hFII% zyE^A)KsfJY-_<%(OPH}iAC7mX-uY&3(C4Y?wR)Ufd;FXW2cjNF6Y#2(fYQz@%)4*^K={=K5eUDzAaX-XSe;pfC9&mIkl48- z&%&^DB@sKbs^98lpMVnS6%Zbl@kbPM6#{B{H6VTb?omV_^vis~5($L?LJ#l49@ zNL&zskh&lOA#*_lLhgbHgjN?sAhfw40-@an5kHx`Kgaf11Gi08g6*mj{8iWEfiRT| zBDFWhJHQn?A+dAAp|WUK%BQO{9M7RFK@#>Qph@>5reT71@d{O#hXa8u-_#yR1i~~f zh(H+Tf(V4d1rZ3tT@ZmVtqUTI6VBr4Vb4pobu&pgo99s)4yCCq94>EZ_=hkHM+oz9 zl(01%BWw%D3ERU7K$c;IhZBJ?oeLrmrguRE!VE5mKp5$Q2!t735P>k03nCC^c0t5X zxB6iAIOS09<2#^R*m3_=#ps#4ABsYDQNHWx%7{K*B8-ua$q`Cef8UR32f zyQdOCHgmWj0s(JNthC$&g{nB@Z8Mumoo_LKAOKydExE{#n z3!aY%gt=T0fiTJi5eTDQ5P>kp1rb~htJORt{q!z=SBwKNy@|2+?Z~IE0{pi@ zU#)hhZwb^nBqw$b_96L@+K~JP=zR{!tM~CM^c(q??ql+Li$8$0Y^nL(v542%SJkB_ z4UgbBH2-6SBs@Vt#XKdWP5eN&pAOZm|`K&HQ zAS~j72!usl5Mf|zad)4DSLrMLf0+9YFiVQ6?V)F9W+OXkcR|vU8+K6v1y@i&0Z|kM z31UJ81EveJ`leES zo@eURJ*Vr`sZ-TeZ&z1U=hu^ratd^`37vI-37Q_5M}${+$Fh`cKn;&oZ?{pzhF;ArUYRD;W|2&lDp0zp1*O zg|5iA61ru6JE1G{ZG}$e+Y6n_*9x7^cM>|2?;>~G=#n83Fpeo15&`3ZB|{=$99uFZ0>*JALn2@tUos>D#t9`uB49kIWJm;z z6HA6fz<6-UkO&wLDH#$$UG$qjSq0ayHIUl;$*yFfHIUvS^Cw{na2-^lJ?{m=`gmw* zp+vxVSjmt`dB=yoes4?o@bWr|)UUgokSj!<#&Rh9JpRo4Nz5os~9j@*D#vj z6{%qMfh1V?N`j8&V4-*cDRewPROm#0xX{J<5ki;b_W@;TA5j`35ilNEG9&`Vqe_NE zz&N>NNCb>iN`^$hcy!5-2pEqk84>~Gu_Z$yU_7p5NThUL=vI%S-B`RzGL|1BrC5|7 zYo$1~Of3~Gi6uiK$7K2ap^J@~G^pYVFFy=~zL`p}6*8Er+ zu_!;)YQZgh`S`zN7XINezEw7VEd0i-RkG3t!&$P=wR$eX<zR z<6q+VpLYB!5BadPUPbZ7t;m{~nwX=hYJ6vF@W7#wYIez?d1jDZvm0_16 zkF5AC)V^pdtU?twUdG_}#M~nwo0`aP2h~=N)hx_5_`U1gGa>A3i|Aex5??nqcNSRr zc3^G12ewDfosFLxx5v-U4hUuzO)Z)`Z+U5OzLtU=O96Hmn%#-uMhKh}y>#PFOg*+_ z{hFz=}lt}ZPsd*O!Q)8W7L00d5hbd;hD=z8m1_mr<92R4b#Ay;tjpe&TlII9! z7G)dv0PTGNUO<&xNmB5~9ClHhwsB9$I_nT9b83+kx3eA`vve1@X=cgvl6)`l)*qa5 zZ%^)?n!0lb{Fu8l^yWB8bLq^|>7|=i@4%X%(>i-2*v-lQUY_pU_B>>r< z>F$DHHz?i!y4P#2pB`U*hZWPyHmyDtFjQAU!`)vLck>Qfe|)Ab*UUx(9nbHIw04cu zPr>W+1Hj#QAcD@_5SV3m=kJ3M%sq$xJ(xcaL160eY&*W;1uS`&?LWUqEK((UZ*=Yn z+3L=r2xqpO-ZIB_$fYwYrdQ;LBeK^a+3H=F_Sny4Q!9F3ChdL_;WX~;=V8C{bsNy( z;5{K&Gb^$#>84dXqmHvxmJXVZfF`~1*Q3+YZh!^M?@d9?!sBpKa8&J=Aeb6o`$hQtfb+IMj&oQueA?7FK0Z9M zh1|Crk4CcIS8?6Q_*S<^V;5b=fZ2H>V>CTC`I+%;sxVReZ2ZMe6=x)~|H*(54Vk_PF5Xd?YMNrDLYhgYcA4b{3MJ8oF z3DLQow=8e)U44>H5IzEz-w2_D$-gTIQU!A?TE@YRlN1!D*m=;TUZsV zv1vu0OMgBdhF-t#Oxd$GxNh#As3L7DQ>!;V0cp-i?_%bWKT%x9=<@5go>`Oaut_@% z=_sbwh9c{S)XewTkhK_j2UkEdbFB}5}R?k38% z0|wd|^kC3^9iRKRpAX*4@xL|Vd*J&0^nMx5JCY@y*%po9MXq6}ufuLM+V6lEhB^ja z8s3AAoQ1qUA{gqM5cb1R-*SA9p}y_-0YlmS)&eknAL-GjTuoB&M_<51aSE7dX^DRn zFww@6qkxIlm7G3+>AMhnz{G4O=CERGvj8R#xqbfkc(CP*_K1~B~q zR$%Q6LIF&SnArg^={3wAt6LD(0FzkO9x$=}*8!92r>qTNVy8mDbUkVJ8wd%QUc}K_ z0TTrTOr#DlFYBQP=Flhm2dp|*XDkvhO61@wT4hGIby!Zv`3=3-S5!Wb|qU+aji)B`4!sUw+>2TW4t05(b_5|TKW zk^-ik!A{D+wi)0w!fh8U;)ZX1eP_8G@O0z$ALw zR51b5fGSqNw6H2xW7CRG0Mj7X8DOG@0GQ%RU>*jT7_9)46h%6U2rvb<0j3f!VGcm> z(hC#3^cKTQrzCi3Dew;Q(q5n`UU~|6XW`%BCH7bmUfLUSY=S^tpA^M7KySH6w#a#@F*yvAtk2| z1o{QU9s*J6#N3-U69l4p3DQvrL@N`)Z3%&X4RhfA-;fmiG53K40+Bg91Y+tTAW%pa zL7;?fXe8$Lfk3~65gVS1I|Zv7X-}Uyqe@2#fog&@(_tXcZ()Vm>1K7VGLN5ul2N-uHfwI9BaSD5(^%C_~aHU}-SZT^Gs_0LvV*h-Y|2Pn#+xU>Q)w3Ro6a z#cFI?(dVPZbT-0Jo#7eeIs+`!5CBVD3CzO)3!@cak)lYa0l@MU<|Z>dfxS3?D!AM; zRbm$GnG(!`>A+}?CpXN3;VzovITu)hnC0D|DQ3ADywMo5umi&~NX?XUJi9`!@5%lG z5irZ&K@!Y@#mggm31;~#g#9qf-yDA!%%wfw>G;KrX@R)_Ehrlc$ zS%g^kOxet~P@h zaf%jjwl{|KRt3N*FAq3{0^$@>hf}109;eVy?1Mnq2B*+mY%@R@;}qp<9kJbcoT4&y zB=hk&Mamq;_!6gtBm;0tTq#UqIE7{yPN9C{6v;<%3NI`tR<=MKdp;zTREkrSA!!t+ zG??kG3uOp6r9QDDdfHSmams)yR-Cf1Dpq6DicTh02D#2~3N-|r5?2EAFr30@g;S&` z(osYcD}i0UiJBj$Y->2>ngpkuX*lK5J~-u9;QbB%Zf=F0Ry4PA1LOcc=#a)?IdIAn z5W^{F11s$YjB*+NZ^E1oHpxI($0>FPwRpF*9O==u(ykLw*VQu4GA)4NV{0; zCLrUY05T{b$RKqfgXt=eA-5LpX}!^CfPswELIoMl!WJMyEu8GlLakW{knxHDGAJO( zAax)^Ec75l+iYwrc?L2Vtw2U)INJIY1Z_aZDqLqELv*znfe13RfU`ZE>`)dEAmfz* zWKckmLFzz;6wreV8j9_82-|=Rnu`r@2xE|;e61t4I}b8crjBGj9%M+F!vI}^jF4mi z$cQV2NepDr3RHWz{gsL@==H5li)-sPeMV;l&Kz`2l z{vF0(pEa8IG|zG_WDCIlg#uDjk2AxsdIV9-YSyBn5xe=Rzn; zu?Nj5v4_ru(2$bTXD(!0h&>vi(uq0j@cX}@5o{3ak49)-f<|;MgjObk+j1^sEzE)U zcO)tJqXtvR93G}H^$;*6B#U55!ZySZbNj%Q?O=q#6h`~OluAbmQ)+@V(_vuBPOzd5 zQ`kc5FogzSYclO_0aJJ<6Q=A++T98v=R*EBz!VAyQ%D_5VY&*Y$Xy7SqW2^XFqo2B zs4&G@*aD`gg_FJApw=t|Ou0C~6bcAaNF7WO3q4HHHXGYYp1~AGE0|Ilj<&ut1Z`l- z?zqliis))Hh7qP{0cU$T(pv!mQ!WWGg#yA9QU_C{fF7pMQ0(wV*aoK1+^k?2!xZIf z9kJbcn4&UuB=hkwMamq8_!6dsBm-bdTq#UqFok9qOrd_l6v;mP?r`S^`4l4R4WqFgo4BvA4KC|SO^^Foki z*YA!k9ZMFkA78B7IcCPVqFHo{Qf#w17uTsv1A8KW5x9G9fp_=W$hjj+E|gD9p_CIN z7hgKEwXIL4RipWfd1dN{y&+OR?28!o#!Gl-3HL(?KkN_EdDFappeFd?E+pN35Yi8? zH9wFGKae;-Fi9&vh;C6D`5~~|`GHnBKa7oB1y7Aid)NRG{BQ#H*CU2a^%C94Ddo2grp7NH(p)Im^01gh`;}d?-On zxB#S~C5UcO3J+X}>$D{V_C)@2a8bY77M?q@(rx^qx2v zBK5&N5W|-`Bs>%$d~g^@=PmQL0_uPd4kzgzf{;FVz4?G#_<+Q<0w!tI3PiUkjaorq zTPv8?2eiwzgGD1(pdBodc5p9<;De*_2@k~Z-428({gEJ@w@T^pnnhc{D-mG}conF% z0H#Li?@Q7>0wGI(sg<5wl%8bMs%MuifJva_VkkiixCEr31&D4@iqc~vgSCLbp2%MV zuJr|Hjx0GR)c<)GRrOD+M)TM5O7;a>|6@}2`$44je}BZVlU~B35yAtiMv6Ff=at*suDGSe|eV#Q>zy< z`%9;$YR{VbX+TG&Gk@pav93Mg2Jq{tC9N&mez}})$z$Zsi_vFZQ)sv&#FL-j) zyN4dIC&$!6eRAXlW?_pbN40RW_eiEv3-RRmCR(U((JA1QBdL3G6bt>6qqf=DR`Tr0 zk^|MV!QKCjw(|}G9UlsC}j>$UFDNwNHXBbF|HIQ zu_s5ln@&MDjN?qe<&&f2qfd^!5KoS8hrD+Z;`k(ygpx|19F-wy^vSWoOm|%6e>b>cKj-N-zx{nszn}9WjM1Fmeqb`c{SS=WoZsFS<9s^5 zeKL5bPdbK||RICnzu!6^`-;XDRp+4%ZX$JZQiE%Z*{&=zoTQj3JA zO89sQpMWrbIC|05o%cfF%-Hl;{ys+dIQf1=Y!f^cXH$!MPbBR=8sYS!EPpHSSgr}i znJi%8fQ2sUrd2N}(G$}_(`C@KLT}L}IN=3M9P5HGe;YJ3W_@?r-QJw_^~bi!m-RT# z$5l}zwoi@cAA&_%kAb~7|1h|yM+__c<9^y@@a@+8N8FxQS^ClZBXX(ir{!A9#p3@b zK?MJw4$}C3p#x#R_Y0>v{^f)~^7U5h*BaI~cs%zMq(|TVRFZ-}>hBjQ3wTaX8KF7l z+XQBdgKQk959XVL*ke8_P1ah<*t{Uj_scrw(=$bAo`-wbBD-X!v@#LgmMHOmU?;r) zG?IcpYABJ+;ZY(}4}lUxvIr$6Yy)gD*IM3MhY~l!2t$dC_Ctx4jua)<1Zk$jpv0%c z3bWIpM7Gd6N~8fegNb&xK#9DQi4qIa?voJ`CBB^$0K#6)! z(f~t=sfCIXorNt>qFOlF>q4zr2$c8^TBs^THYl-&>kK7|t~L;YC{YVI+j}O`TLFO*-^l_hN~C}&k<_6?DWFG*G!$QKLuhSf zAWEdU_}&`A7$quS>xk{nqePXdBbkp!iBjf(uu7B|k_TC~;v` ztj4Al{Vuea&c|V>qQpV2Gn7aT0VT$jz&s2kGFqWTDT;IyK#2ie1a^ro!a9hiJt4Qy z`vrDd4yTNb90DA(L~zQP5CNw=8w5DPr!$Q z5I@NXaoy#J7(%2Qy5TtRP>kA;PW5o7Y@Wn`v9{MFD1%K4nxl)#5L1tTG!9K|ET!=mLql$^S z{Q<|S)8rP8{7yphzNg92nE#Ie-gz(wE`2FU!5=k%N9OPVkEw?Mcp+H?@DjFRt(e;f z;JpY&7{Ft+AHb`0qyVobNHZM<;Jpl1)BzqFVjbYo0DLx+cDDd{ybTHPE+p-qgOC94 zJ?yU(;88$;N9q6`(^UXZZY=;jz0qiZ0ld^g1$fTF764Bzob0_EYRy6by!X;V1$Yz? z;E_6jCl-2ur)@U2l{^D@j8*`zG8}FFdHt3iMif$hV2<2|Xj1VnrOyKB@+&97syOVfEE?cgd9gcj{YnVO0GmNly z)6JH#{nx>i>Zi@{Y^Hty!Tep?yC?^xLr~Qro_UPdPeS++0>SHN3fF$w(>4fFokbHBQ9vF_a?-$ zZe={~rZ*`}j1kI|L$ zbZ4e#{CT?SjG5j$#6qdAnJmY)jCI#N6Yr?-`DO@kVs4kz0WWdJjGm`Ejk9vCKrB`b zcuh@B@jTrrcb+cI#aF8lg6+=JRle3ITeJsWD${O=`FP+ZWe%XF1YRM@0N@o@Ad?vI zq8SFfsGlR6Cv0HAz)vN}mmF;KOR#|_kudiuqk+>-=jYr)W1jH zA2^r%2ZMV4*1*f;9|-FCeDC`l@Lq<0_uiNNq?=D&G_pT%^fJNQ?}P|<>w7_fw`tRr z2+DH-@ojqu`eE$%IDWv`)|a*b&L2Q}j4PLs6#P-W^W|3x)}RX!nWE;!Q;Q8X(;UUf ziw!l?kdost@?yit?}ON5WM()qcLp)?;#(dg)4T)d9iwCG|d&|!p;E9Ipi&D8iH4kIs*G4k>RBYzlHn4J#AvW3=BEDgvC$~=lCG!zue zPd+#l%e$Bm@1vyMcOjhKGRr?mScDHCV7#PYX3MNg>QF4xL6f3bxeI|}^`4{whGJ6- z6~#IW9g3Zvo>mmgPd?mFaW=p7pcYQ`J_faBA-=$d$+C6VVH}2q6wFLzT~dc)#lk5? zv6I=iC5@fWR608hITmJ|Im=e4SJ=_6p&jkE9(iln=y(xTIJ-u2{DnI{l zycU+zgId^Cy-y&$6?RpYf0%{+v<&VP%&f|~qzSJhDJ%+w4~ z>Wo9FG#6hULI}1)smj;-VjJ`*Rb|={FdvUnrOW~0l_)hN8Gusb3StsNsWih-D)kd) zNj{2FdEprwKMz;(b3%555}opgT&KvipJ_W**94mbD*XbK*hqsLpKTnke)tW9sflW$ zOzKT;A54^mw`hS~zC}9(A4cOi|7Qdo=TF2<=EwP6Y@EkQ#?d&>@%djE`>%|O76qJjA$8*w(^a!B(wH$`Y15_wHeRI`>UiZWbmLXi ztczN>viD`EH48E8@=;o-udpcKtP80duf#$>>!M9Iwv{{^uNc+wYAowkhNG!}5rV0) z+LwvO(wUU6;5r+lL{~aSHO-`G0cUz&MS3eBW>P-J0_rO)3OJKO>c%K3pr1*hp;^JO zHb(WCNujy;tP{d`CPn#LM{IX~j8d68lKJ>CO3EDi`*Ms5Nd}BjaiuVcjZrki#whCN z7$y1W7{v?AS6E*{9N*fJP*UkkiZUdPj#mw4y6Zw2!k8tmu(S=>6S(MUQ^lM`8BoRg z1ir8;R%6qO_OGxoi!#V{Hpf5>VHPE>1m)!d_Q0-QVO8(2 zMr~|971WQ-xvgdY87PL)>KXi8jHNr{H=f~Y&(t@AHyV%G?6jhHSYgcm8blbgzXj4b zW`6_1#xeUl5TXnCE=j>3^)Z{Wbj+sCc+CDLIDX7#s)@PpG>zG!;1(ORzlY3Fitm#Y z{81aT$sBsjX5t~n?2s%PvlF%rpE0-3nEh=SVPiI<{l@G{M>=NL1Zk$jjM-Piiu#z% zc2FO)X+Ty`)@ICRtLB*f1Jdr-5pvA_co?%O;FwM7#%!jm#%yWK7_+r$(*PT@Qww#> zb{4i6v(>_ty&poYS%@+F6JgAzfMYhP8?(hiKW1x_jcp~*#%xBbF}pGxP5l}O+Kk!P z;W`_$MOT{+ozIn8z?t6lNN)winElBxW>dg1o79cjQb0du(@=a53t^ivo95zcG6>@_ zTlrc?Ywg${fbKa?B1%28`Kpr7($&*)+q(Z0hHjE&1q}%?ryh`&z{D z=nFLC{ z3?J99P{A=LuS)R-AjFBa0g|i7>@Y3pR0@^j2e_gLF z&uiII%KcM_P;Q*p@^i%S6%q-5DdDdW!V@=vbiOQ}kezm1^vs=h^u+r?%@foFPyCvs z`!j^}#HY*?e8b`L6M1XU7p7X+yHGAMEz8lJnNAqj+0UD9JE)yAB=6+zDZRrg-IAbeOVB>IaN)kozGb zwos0Wxl3wi(k?dqL!RYV!Y{TK;9W-4JP1q&%RAhvG^e*c!Lc{7# zL)N-WsySHqbl-CYsV|6dCJr-1$^b^d3%n*UwaE&Sh{ zHT^$-zLoz)k=P#jKd@W+pQU&H*KbBmN&ClFq3HiRfY{s{(7UW>DZd$|jj-XIDV!{b zl;y-6&l#|nX$7YDD*mEXC4X);qS$>SuiEZ}OE3#?XOeWKKP+onDAQ>>yxz1m zEzD7;?Iz}^Ig`9fj$6|*VQX6UK>|OkN2SR*2E5NY3p&SOJWF9 zL={)`B532r1w;H&Qp>C>Hu{ zZrWz0$Ea*2&*mE$t=6&QD>eo?|e`bvEBf4Pl#GTnWs><{KF$x>&=x0V#@f6j;3z&|P4c=;Bs8$AF!d z!zp@>!L;C%gCIhOa|lR$j=?>^!4a_%9xCBs2=iy72VLEH34ACB{X9m9>t2e8A#|!F zLOh(bdoV&G#INyg)pHCeAVMT{XXP>-G@TDk0inCBzYYzJSt~+s&YB2u{(LKhD2l{( zAjGG@B1Pzd?Y>WnL4|)@Q`P4j1C~Gft|-qjm=WLK3nKXb-XMk%&jv>H-|LzOBi;uo z>liV@g7?EE=%J4yDfpv)jsayU7Nq6@$nQvqJ@TW94smHI>q zPzusahXHs;!-_hJ%1$Yz?;E_6jCl-2ur)@U2 zl{^D@j8*`zG8}FF7zk`|ANcX|<8hq2H??LoCS?A26)QXI%2!?08eG=Nao`Ko|HL&Be@>{@IsOS057f- zCNY3VGwg*j^%LMpJ__)7ApqVlFhunph0wZU&fwuB1%K4fJEtsQi9T~i55WZX0etHB+ z!5=k%K<4lOfvJZ82q9Sn5E8bH)iJjZKzJyOFo3{lKY&o_C~-gu5Nd)n(_sL@BVk1y zAh5mF0Rj!cspqu21wi0EM1XJ#Y4=2g1PI>=0D%Gm1X2eOn63f{a=!o|=-opD3?QTy zDnM`+wg3of;bia8P-_+fAbd9f1PTZcNF6{B3q3&4HXGYYo&f|#D}YcLj<)_N2-*OI z$KW~x2%@Xa=s|#>1)S|Y7U`{k00`d;0D%Gm1X2eOq<|hE&`_LUj<5|tpt(2<8et3& zl&^KfcIN?t%G8m}#{&c@a~NDpfDn=l00?oVFo^*Knqi|H^%EdSJ_-t38=j^f^KG65HvoZ(qIEa7`9uE?~Cwu}pI2>HUCrS8Z z2|Eb$vt$Ru2zqzbi%)d2fP0!DtZ{>MWB(_KMZ-L!<{*C32=HI@AGYs&W6hrYd zAcF4;5MX0$k*v=6dLMrL8uN5t#W@HzPV~peSG)4tQ@+1d zKD%zpWQVwgRPq~MRf=X+5cHe=}N^t7+sjG=FJX<5l}2z`8x=9mF?*q83O zJQE2#W@k3Z`Cbdh>_fiiWpVs$A6^gZdtR2x3pP8-e-1K4m7Gmd@JH=@FEX1@zCYhf zoF{L8{rO%@oud5ydqE}rT67G2&l{3OC_iBv;EuU{Q2w)EgrR&!73Ih0dsRBpeI+$P zn&~k6N}dZV>}KKlUc6h(>~Ox9Uc>COg7MnH$9)6f_&X^s^@vh@2k*1N9TEwo9;qA7d(5ukZe-$*|ZB)3qR9) z5%bsT!H$+6vhbH+t|Tic;Eonj_k1CR_d8m&01Ru-7kzf2(p((4i!k2NqI|7CwqXB! zp)z$c^YPCYQs#io_d%=S8|IK?!1G01VN7Dr7c|43FQ}h`l;oq&7rd~1!+Z|nS)rk% z(&r0hNE&^E+M8_+m^68&ns?f^rAgQF z#XZXY0r%=-Kwl5)_u5{IE|%YodIk5-g63GC4>EFyop*Iga^BU>cHY(D$$3|N$NOUN zF2=t**NWY_d%wPDA24PFC|{0C(BED}Qt(G#KuK{5C}~Uy9~Ds2jFQs_P|})GtbppK_p`glk{$>Mn2SOH3w$_q9-pnL@~M3uafq~MRaS8a*sgFWGo&N}J) z$Q&L}GW8IEG9-%tWx_UW7jydn$_rtH0ZK;u0m@283MgxWG}B=K<*Q%?PCiG74M!TO z0ZP4w*=GggH9#qrwFi`J|8+pA`YCGzDA}EviBOOH46bKuMdEd0s=}>2Pnlt4=DAHh;1dW1eA;` zp!{FNvTkKO?xu^$DaiMLQhwI}CAle}d@XneC?%UVNP`pBTKJjX>zKb*4*=zl0-&UT zfRfY!N-4Ytlv)6WZ2%?B%?gGwpj5urA6u{olqypvGanBqrOW}0m4GrN82~8b3S$xj zlr+NtCG`_fN-))aXS6l#Et@ zQi>w?Vgx7yy8@Jl7@o`xPh!1egeR{wJb8A4CvR_f^5_IlP67|^4D7fs=)R!2;ZNep zGr&6s{|-;GH;?e--Jox^%vru3BH+n4fY|%|D`6YYNnHt>4g;RFZlYk|6kjzo>--PWeVO}N20mgD)$(tee@Q_OFtkj8H z8y?blj{+-r$TE1rW`~DwM~3kJJ4g!tsGXHcW)nQ*X|{U-MDlwAGQYJ8<_l%FNx83t zsZ)5^VqZx}7Qw@WZAdNVnk8#tNx84&Eil61A*20P6;wLXRRuLcn&~jB3f>7T%uY8W z$QD`$a5Nw*DDwcWY1tv~WUeZB4{7&Ogj`kdVHr+mRjUf*E(Czn zdy)nifJ-e@0Ou@p0Iq3YiCQ?>doR?Qg;-Va6I%ElbUHY#83L{s1FBeI&BCf!jZG{1e6*O(Mi{Eg5eK=>fEzW0)dq1T zFb{(@j8?EliXt5dU`^Po5ZLZr=_xu-*7V)XI~lI|BPj0h3a0>&34Zw)Xo_F905(~P ze}`Y#nMLnhzYaO}ouZ@q07Sqq9|SS{@@RB+6UguN`2YU=_~k=L*$=;b*zp5?!J);D zf1Z2aN*CL*Zwad6QAeS)Om4?jIt?V_bPMLV>w#5OuTM$1Z0gm!3-86fXl zOZ@XuB=Go$*-Xs6htp%ja(QX%McP>-N+&QFhN%o5M7Zv zbj5TPy5fz`=`rmFXn>)s)Ivp9&cYVxN-do1eGY2PLZGXk(!w_gx}t#SiqxSivCyL{ zy(3~<$uo4tXoapS!*M5l8UhgS*&`6!~|g+Np{6H$Ezah$;}p`=nor3^`q$KvaLNAu7?+rizKE22`;ks)bdt8k<)1&xxr1Rw1fEt}{eM4FOTbmB2g5%p866}_QO+GIex%X5lH$fEhnRAr3i^RmUu`J67woK5kk_}gX!zd=&)M-2~=IXoU>>LKt@NEYFtgl*6y=JvruUx5)eAH--sJXGmO z@lZ{WW;zTW`X;O}JKcN`TWB4z(15IT)WXT$ccIoS1Y-GRKr9pxv5-2%A{KhYqHQ*|l{`Z% zj8=%HG8}FFTM#T1v3w6{46%sbHp3Yaixw8gh9kWd7Kr6n0kKd(#6s#2ixk!)78;F1 z*b%ltEHoFVlp~B0i}JO;*akgfQJFfG`FO-4We%f#iC99C0f;58ASN-yLNg4pP(Kli z8=Z92#95_hFC;Tn<^$^8BoQFSQb{rYHV83 z$sEui*BN4=hJaY&N?;y_SQxDkixfpVjc5)iu-nf8<%U^)1`0S+%>kWjb3pIzGY51t zc%w09VFwn?0qu=zwvsuZt04kr`5}m5mio7Zu7$9KCADt}T@N9;gCCI;{89fd0cBz3 zl735wIu&M=U#|WEI38Ir)qw93h=Lu_=x&j33H=zEp%gzMDfpwdO_a>&y9D9Q&HU@f znK&K4TdW@s$)fQ)VcSp|bNh_n*TD!IzZvbf+^5o!F88Sk(oBb0?sEgIsE^-l2lerr z24n?ge*A7);muaf1vx(>?OubB3vzDafT71oP{0K_q;C9XIv|lF(5$R6WBk^pO#^KF zPA$~&+ga$w@1_;rYT?S>&!N^V#Dbh((?UH)f&wncA$8-oSm+nzXp@y2udIAwiM7W zx}l*sHXUJY%6l#;q?rygX8##h)W>YLgZh|F1G0j$He)thHOK6~l6G%G z$T9o3Va%q0V>YQ9vze|Mv!yX(9Mq;w18mGrEz~jFS=eICRts15{sy&XA;#?Ag)y4~ zj@hJc%oYp%n5|7Vwv{{^vl*?%?88*em zvwt7PYzjDLle#fm3h2jd8k!Xh+l<*X7ax;A7?0V?*E(Xm^JBKk)RD}`kJ(b@Fy578 zc1SW{%#JICNo>rf88&89KgVpzN5^blSdQ6v07G#!lvFxqD?`%gnB8EeyDpSr(3mZH z+Eg*e>;YA*WA?(TSdC39IvKMExz5IHY6xR?TnWs>#%xBbF@YH>N zQ%4Tn*Uza?6TU@&r5?CP|Aim?7Qr8IkMiq6j<5 zSVPjCMo1t0*?d4Qd_dyP)?gASIUmY!H(UVHa5so92z%?$FKh)7d~kGD+zzp<*ajg=zb#1T`%?P9-^4ZjF$o|BIELT$G+<)2i2%XSy&6lx(p`N}qu=lwNd;Qj{Ja7Pry|_C&r2TFQpfC zt`Sej@j7h%JlTi!F9-W*>!&7oVo#FpE(qy~znUk=g(pbdnLbPcB|Osyt$(7q{zbPa zg(ntQ^&i+1`I1oo=Z-A7Fnnk3;!CUV%+adRd}&$#+6U_WzYZe3|Mx;HE3jh&;T;gd z19t@JTs!amPaW{U-Xz`i2TzG)Q-TzDi56pl6i*8XG-T#5z_Wq|`?*8}V z;XV*)TeuTq_$Yyd`$@PzLU`gXAe|qGCkEjHYJw*=kaYJ&NKgFTJV7ozLE=UOCV?mB z#|5HWl)@7M7X)^@@sL)zvB3M`t`Mmo4nzzG@k@Aj2@gUDKO79w`Qf~NpeFd?5R&cz z2#{s@W2ry-FqUW2mWauAQv7WarXq1w7Mrmw^g2ry)D;_7|sS-Y3!Y3fi|0!Ns2CyM#AueZx&}juCb`~NP^F+QUl6D`B zkSFr}7k;rXVo<;n`A9dd!l6fc79!I@(@JQ&ghtgMfzY8*o*TiaOXV>k)n|12{CqV@NcR*tQp9W4= zoG#&HnvacAt!p{@()LGyhXS|C2iZGhNO9F6$QlZ_b+jpFiKq z|Ds52kNh9lE&b2ZJOAsqV78O?|347H|4#>r&!T(=I9YLqgoT7%g!#Y4^YWxTHa#X! z%IUXYsFI%Vk#?Vkke<(i=P97)N!@tBbnra!a%lN3>lSBGHfK%G&!2DQc~K;`M`uw6 zwp&|+c?teCd<%x-os_Zvmh+r zulY{`KHKqc-WtnVFWO>c=^5H#G<;uhZgN@pUf}bP9y9&VCn@-2!#OBJmSctS(wSV^*I8L9%y=O!0U*|EK`faDi=BBqP%PQC9JHvOKT@Wl;zXsy56(grD zNhDKaon3Lk>b>tUg=M;PyW*10ZeZ*+A@Ox%b9;a#0Y<#tA<1(DxLY>v0opqUCZpP3 zKvM8W?Oi09@d98e%`PZS^r69+TW$zv>hxt~{|(`iel4`}0LqXodKsCp?Y&^kwI)kV z<%aO*!U%gA$!Na?z?F`40dP%_W;)CQ;1|LQvlBP__=XqoR_U@8+sjCC21V)$9F|AB z?}-{)-8q!?*R&y=T>uvVznHXpCPFR%#{wAob0`XsnkL&0A553bpa6tTmVe!UPg+AegUwy+1OU{>}4dQ z)dJwkaJ2PvA(*la;e)m*ormk}Wu)jz-&8ei{MG`__FjtgRzNKJ9b*A?<2MCd^h@eq zMoIzwqF)+{a~Ba>TN$|Vo95z-IE3+{U*&5ZvEBKXkt$P1G9UjkQpy}&|&In9eE~svExtxz1ijQbSnu z8&?AJu$PgH5}3$`2Bj!+8)DIKfaHN)Lc;1hG?)sPeM)#O5baYs&er@+C;OB>0^GrU zN?62K+o!Y>u*)6s@AfIN&vMvu(Fj((jqD)!=4B9}yEM%#4y_u#Pk6uFNfFz6skzRbthf^f(|R(6L6s~K%p@nX#g0^ zk3%*e#&{LXflL3Fq~MPl#vpTejKS1HV2qF~!WaqLhWnV?2V-0WBMf6O+7Dw?I#P^L z6Qr3AgE20K6?KfkhFHfKGyo@f((V=*gSR0u#%oBs=OZM>mp4CQMbvE6x$p)z$O^YIu%${fb$5@UoU129HhDNJG*gJ#%*C+a80kbD$l z@IqjWHN+UNMm#GtlvIi_lp$#pV>FoQt_x)d7-Op%#t=Pis+bsKKou*-SXdRSv1vsw zCC1pg!We^GXBdMT0>+3dfq59lV6?&*QWWVZfH7{z++-_sU@y+M0T=Jt%Wv6ShJ%>7 z7aDWv5yrR%a~V8?`J!ZB(Se3BPU?d(-VEMl_;(nCeb#8ct>#&N>rOGor4RvQyb;7O z#v!obM*N?Syx#(B(;iE_1xnBvyp^QjkNUUnC<|Dk4{~@DF7U{K36gK!EgU)ATt^PK zB|vx^$^<{XouuH88bBa(c!0pvLjZ)3ECL7#+s5jc+Xo=L8AcdDV6-1VsC1+Np(aQ( z9R?u016I@l0^3_1AkcuUpsWo*;5|fu@NUxX8xRs8EDHdE0s;h52N0O90tj-y03hhy zLjw#Tq!ubba2B=z2x{SE?>$g!76KqF4*-Dz0t8YA5X3?c5VXz4wvuN6fzb*eREDFi zzY~Hs0O7s3&H#ewYBPEeAZP(+d+$SfD06_}q0Rj!p3WjX}0?oyd zeh6cLpnR<(wmT0HRHlw(J{}-QnZw{(0)&uc06>TwQRjkIQ6`cTtL9R1^Kn(#P z#FfB23?MLC0R$aM?49zY%G|vo@Bj?8F9BwIhMSlbdJZ_;C$@jh%j$0aE$qcFmd4x|0{epNcsy-k47`=h>~Q{^Uc>Bh zau&kc`Ez2~-Eqfs4ni>Z9K2S`59UuiAK+Uf;!pQ7hwZ`7%el0UBU9Dz#8?l(W#`sHWZEYT?S> z=b+Xs#Llvnv{1kIMFDq~kvbeD7W$oKdPlI63bvA`I0|PqA}&Cx_bJ4(Ze={~rcaYo zkiYhe=#LN3?|sSdFY)&U)me0URqZ@Fq%@2r*`xz-(@t?M{7mojVv$r2cAZVK@R#6u zF)JwGt}{}Hv83>R*O?Z8p|zv%qNmSJ@hg~J!7$!+rhKhGwqTF3RHja5J|1I9nFBs4 zF;+-20As}!#w3QZXog`d>gNb1`6$NXh2@K$&mfNT=p>X>im{X-X%u5MnCY$yWe6CH zFM3?tu$Miet4%c%XAP)k{XE0Ms#y(AE8D;9!EW(E?lYW44Pob5)!G+YLVliMKnWE| z-qIz+=Na0Tu=+eh+|=krLz0YENK%R-U1jt-E3m8AStI5584kd`%DJZ3gHD5%f1CMx zU+gcU_gwtmmtxE>K!jHNWe~%d{l52w1N(46KaBY$$M+cXD#s5P)B2qL-+GAF_pmVojbFb7rgO_G8?YTx@Jb9g|>)I$KukSqd}3EQw;%(dpY)~(<9DvU5d z$!I@7S?NdtWlfM~It-xv7Ocn$Hdr~(m=QBO07|`v+2i0ggf&1ZmbC|zZ2xsYsro5v z11QL|9i~*(c zwf@+GJ)l&XI+^)+Kq+MoV5|g`A;|zh8CMvS7@(vX1}LeYfKu{NK*1z7vqD2j zrGQcyl12e#gPHESP=*vxR&B%Jmgs6z%>4@+L>_yJ3{$BaKgdUUBb zkQDq;Ki`?M@D5aGAZd<*!HGEqj5MU=ICxlo@8U-gdw58t$@ji)L3l{>5)`QLkX9yw z+Y%n$2y@{5pOO^(QTyH(nN9G}fA342S1tN3=Np+ig@-MccZXyVJWSYz)M9QQc=%%& zVepXAes5MQ9qF6Znjp<|m^Z6GgB50{n-OFStphk3fTJ2|cZ;Q0yp#E6^_QgGA0XtL z)mb8hqp>_8D=6TbRZ<7wn67%WDt93OoZgc(zyMrop#nH(p#yMD%e&RW$=hnzjcp~*-mEfOy;-dcM_d0n1m&C6VZQfu6Ve-alRVN< zy=mFE7JRn%Yoxb=8IYv65qYI^++8D6cPh^gI; zM|x+BpCqS;>uzY18+3Lz#H`wyh%O^ z-gqIv+vzOMFA&Eum=a1V1#ilbGz#7t%yidURGNW@N!>B#~yF(^U$MP2M4nwkN zEKk@rtj63vWBDIpgpK8l_M7Udbfi-~H9?x`FjGB$g%$O&ob8}KmeT;7OG>-lSl;w@ zkFA=MG5;X#{uUu8WAIMC+^R(ZCu2z6Sk83SWQ;UsjOE(2X@HI8sf9Y0I}6=d-t=}) zEnM0AC)ApSn2f>s>*ZE03OE@<>c(=h&`-u_lZ|a9&&F~_bu7nO&z0e5>VJcv&AE~P z!gV%gi>|aoZ+e5L1)S;q8|kfpm~g?OhH}iNfD*G-5}T5m`x2~vL&tr=3!$tqa3s4tY;~TbQCx@GAyGG>~fV=9h$$84q=aMrUZ zxW&foF=U2PjFS}nQ5&<#9D2-V;vvTDkSrRr6SfVXF}Kf{oxunjvl;C-W>-4WF}o&6 zGaY8ko`4ngF`Mn6K4#MZ9AQekTa4Lk)f}^zGF5jIesRpkE`@T;rhsEMsT;GIt{StY zF=NcurcDEE%uX%TG22<#V$4THe)u;#hIrF<1t(LT1RYme#};xI+FSLFR;XiH+Gb!^Ujt z=a?<|=$Oq5%Q1Ti;#r}gq|z~48InfF>;^O4b)gJ{#%$5kriwXc52#`tvlmvyYHV83 z$(TLJbv9;GLm0E;N?;x~W;0ri*-{kgD55btuy6G-o1K;$v-K>)o#i=uOIWVw*G(dp z6;l#UOE`lNXL!wmbZ)@Ac{?(S2kh{)DxU8thgIqMp45ahyjGEPS0dyYUN|5~PPZf% zQO1Kk3cwlFc&QHYyc+;iFmGwF2m^$ErT}Zk+ zAfyL&Fb|Lm50JQXo0tS1I3HREpK~m_MJYTG&N&Y3w&(cKE_aTfzbAHuNZZ2hh-F1C z;T{t1i4dMx2h#c3ylsJ+;EDAl-Q5t<6Kl;Ah0yZbxZ;!INgD*V0Vy){y=n#Qj|T%b=n^U_C&r1xbvO&Oshuo zJ$Yp~?^(;fFGMK&kvQcRF_d~gkj^jWEj81j)ccck?}U)0#+0U%np~8c#Fd&!T9sOK zi_)mnfo-Lp_q=D?<;v~b{#_u_wtrW|vf=;<50vn32;qslgLHm5Z`-FPc;XANe(>YL5fH%-7!U4) zSXLY<;e8Rp1NQ^z+$0_tG#*d~Ja80A_udHUfnCi5%T9sXNi_)m|KgmW$Nj+-aCx~y@qA5L^_$XZWyZO)qKTF##@pKs(uS5YLk<6O%-!Xh1f z1AB44H@Fy5M-IVS2>vykYsvDD=KJWy+u*>;L$GZ}eSb1U@cpAfV&6XooUC}PgpZT( zRD}6E=l4BT()W)i?Vf^=zTY$Wo&x%w)cKz2YQA?_xA1*)*7W`S`BuIcMPhs8`@nAP zdzRn%e$mKBuyzdH659O}AcF5ZAolL{C@eJj1O8u#&99%vJKC&x5`^VEZrE3#e9l2o z-Z^=Urx`xkU3$j0VVf)Y>vvcA+>0Q{UxV{U_geML*MiLPO5tw2L{BAUqi=I6=^WHz zPHH1b!5{V2XOxB2XSx+Z43@pESVD%p)vf`n&rX99KgUd^6LW7w(y0kf4`PF$n7p9P z2|q{jJ++qKrD1q=uJ!5)WXT$8Bl8$VhP)NTKER6o5dm45O4__shdI<3;hx{y(3~< z$+IbRMyn-kmEpLPo(4g=gzaLCf{0&*f%AYtrm%?446)jD~L&KI$iFLQ=|u@ehy`lk4~raLQJRc3&hfUI^sC=TtZ2u z)9K2PG&-H$V5Yk+lp#!~-w9b*d$3pFqNhz2b2@!M73*~R!m3z}O)DCm^}5cTVW^%~ zI>>c4olXs5*;-r)%)_SB871VA(@Lc%(rIAXT7a8@ZIGutCj`@LvbXbjpwqa8%D?vj zyYL*bC*nLWh(>ZulTbDd+_N+2ok90?d}7uvcrV1iJ4cMYR|9V9L4=X-*&vO$=}ZXw z;U@Cg*hmdGJz4Qt(F&H<39!Zer>oa8pPY z;iiOb5GLmK!A;MB5r&%>?T4Ex9Vu?A3DQi5!A+1^W#-U{gOy@zQ?-*W&SXP`b;ROgW(|jRF=eIJ` zEYq8uisQ^G-!{s`s;)ku4$L&aoTU3wgq&$c)0SCwa?wkYxOqJ$ffCNC;%(#pAPsLD zMYkx$O!HlccjYYGz@ErAfQt#wdA_YnyGHZ7>b0Ej>TM@zsZv*N4VO}3l2Ym2$lJ1)j(g$}oACL9dviUAVwMlrTYZUK{Tl71~(DraRwvgqj|VH?noxf6M%shpL44~(#<3r71rT~s>K zr;C~(&2*Tji_2hz+3Ds@*`f^pOA#niSKxG6+I>$EcO79PP!0>-+q2hmDU>3H(|7zi6?;}j576Sk8PYdTXL}z* zdMh9>|6N!>ohzk)n4i>Pekq{G{4^9t!6LM_GH|Yx=4J)M81pM%>xk{nV}6yXBbkrK z{8HwCmrKkak_^E7aiuVcVSc%rbgq>8iTNcT#r(VwnEybao!*BK$03{&N-D+t%8)dQ z`5Vl1*M%|!%zrmz5zm#1o;FoX%s-%t74t8wiq+V(qBo$$bnXsAb*^-f>kRW#L%{rT zB`^=e{ESwZUy35PAu#_z%uSGLU@y)O26xYLu5>^9=E5bQey;Q(=v_Ehx)tV3{aoqg z7<)Na`V-J}t~AH^y&wMFTq%33(fknR7}nR}bvb&Yk3$5Ub0p4)L=4#Ga*)m{d5eD! zB#?y@_e6v^|4>j{RmgO}HlHHtegYw}&0XQ#>mP?RAMqQ#A<3pymz8TLm;_1=hZ5lY zdx13Ie9V}NZw3u4&j5IFco{GSe=>$fI8G2l)2Gl3~E2H~cloCN`&3lrc|O}bVk^HZ{$9Tr`QGQm$@Bq{i#28+myVUbu` zgGDj7ghfo<4i-uJ5*CGI5iCmBhEQVeL|$nsVbK*Z!e9}j{a{h0BZWmZL7M3>u;@#$ z!t8Xgi0#c_krY8;5e>)+%G$sp-a~{%Um@*&1|eY)&h#u{5e0-rqz)D_T?LEee!&f? zcMlCPSd?0*u*g~10v4%-lfAD(tyu_IbRaEMSVRF~5vhYkVxfmc+Gb;0$un5QXa$QZ z!_n5Sf}jm7`Wmh?SR}gIjG2T*T0oo&iu6`Mz@odcfC`H!AS@zvut*B%VG#|*v5E+- ztqg=kG#AH^B8*{?^0kiG?mR3~nL3jBcvvK54v?aRMIp%mSQJ+ZlNc8=Z92(ajW$RdVCqNhz26BZ4qVueKu zt70`at!TVYS=YhpGJ{2fTxYO|8UieeD}i|!EMl~RMN$;$C;*G@&)ftS1@_|n0pQ{r z^rzsd3ZwaE{?-J$tkL{v$r9hPUo^5ea1)lppgZ~oM8F5%0Wo|~KlkKY5SH(dYv-PP z4?=VR-zO>fqrQilG6eaSchq zAGINy%xDjF7@PgMCo#7iv6(m>vHPEUQjN2m$Oy@z5j$bq;2CrKjM(3W5jJ8osw4K& zbtg_QKj&u)oO^{|f%pU4%VMTq!W;>{l*fap=rP6LUk0p*|>#*c5ONHK`l1nGV?F2)M%g7a1S-98?nVgzlU0ztlW5&t>oE=&8UvpIQOJ798LWP5VYAt{UcmwBev*D zyYr@VPqctDy&ogJ6%c!<@$gZO*c5ONHK`l1rGS19H4V)QhP4s9&$%Zw7iZlejQ3D0 zU+akN&X3qCQ%5o%KVnOn!)RBI*dfV)5j(CFCb1ElX4r^L{T#6+A04rIVL4*|5OExw zDWRm&5nCCOMn~)hGu?He49SQ+=FdG5J#DI(BldtQ))9MQRjkIQ741iCoO?3Jbv9yC zL)b$dR|4~}5t~tt*mCZP6h%4;?4b@Lc3_ty_N{jA2|Fz}W{-|s4xE4mqPWR_0+G&T z+=v+FGJXouSuJxJIK^M*G9HKs=Q553wYdzY!(7JCNV+#5NucC-D8XFD2_Ow~8KPU1VlLxBxK1HYU{B;Hf;<0Q2JITnAFS6Bt6Wi)`{xj$ z+(+XGO2o3_R|rx1n?O2i<}E!_qx8Qf>HY#COOLTcN>46IPvT0?B&|v>x-*X>N0yuu=5fxusG7&2Rj%ygBlp6JL9CNSo&N?Rj7h%(!Tyv}$JZQiE&MWpqrkwy zxpfl$QNlk-_-BOq*TpNCUDF*x4`qZev>%3u?GU13?o#;+Y4^7Xxl83x_S0WM4mfED zEbdYv-Lwk$WSeXiZhoeNrjwuvJA^)ujIcw z|9=N3EB+zjKPCK^g#SjEe`9|CQ!)MjAJXn$5z_yM2mez*|C2iZGhNO9F6$QlZ_b+j zpFiKq|Ds52kNh9lE&b2ZJO3{l*%fPHfuYg9ahZvs!yzwG#^T~?L@n_eT{JGVu!o24gE&*a1Cn@-&zEYL4Fz>17OEbrE zT`DzeUL~i`OW{!@@J~QgIx+W|E!|30-e(JYDSUgDX?pB6DQ41$~D}sfXO~pfDIh#rWXH!Ytvzb`vXH&J! z#q$cs4r) zS;VucqNhz2^Vw`b73;Iv!m3z}O)DDr(z?#0VW_@j9^^WEHlv0xn;KUF^RQ<#MyuIW zDT;Iym`x4nF0e~<5uVMO&XL~M_T*fXyk|ZW_<`@4F9l8CGye*_zv18EM0Q#Zr|3R% zER#ovGzrUrQ>H=UedIIX;A|@iS4p@UVg5})h%e#LJT^U+^K>IY=r2XY5IR*7A+90q zP9Y>hJd$^-B6JFf5J}yc7EA|(cs?`*gzmEbdPaoakhLQ8=B$Yj=g+r7h@wbr2SN;I zfd{rb3*2G!G2ru=7^AcN(HY)1pl+}M0KVS}BKZDxAU2nMHZUSi_Zhhi|2JU`!8{mo z8>Fmb#0U#+k4w-)??6)U$NE#`1pcKnoCU_o%1cF-VnJ#ifc&8 zo)pjnJQ|8~_z<=Mcr-UF7{&lk`C3P8cOKxWOdZL5JiwDO2XIsZypUu7z>6z|Netl8 z3Pq)~v^V5Yk+lpz4T$JGFy=xI~M1b73g zSOMO`s#uLpEBgLuF&#{@7{D9kIsA%+?X&*pp}-;WZfNxsLFn1m7J9j6i&M5@?F=-VEMl_;>h@eb#9HM9s5Y zPp24T4~T#<)`2vxr;|tHhHu^ad8OM!2|9y2kQDq;Ur$F_z!H7tjMn1c}G_-SvFfhU%V6*}VmEmaX`$EtLAncFp3?PWEHlqgtf);SLcNe6$0s06_}q z0Rj!p3WjX}0?o||hA}`;zSa@jod*aiQ%5o%4-llxVQ?)0LP#@z5+K|O@vP8LQYk=ChNMw|&|s#!E|g&qKoC7`s+a&_Kou)MSXdRSv1vso z0AY~p3?NWL00?mFCX2}28e(U z4giVY6CMaoR@_a(yGwYGga;$cza_Ikzvbi)XMujl2_aZXMrf-ED-6YRXEd0-_tT3H2o2p!Yq)>`f8a4YRFn=fts`CEYSSXqoc|fzdEe8r^rQJ-CP{_Xka z->8zFzc*?3o(SprV}s`@pyx^5{2SBN=HFb_E#}{vv!>_g&$sftC=%PF`M1DsJ^#k? zNAqu3|2%?@7j6GO5W)BN1pzh&1RufN@W=!r@5BGEfw8}e_qjGs^vB0I;}@yxb8uO4 zl;iVlYWe>5{*M0&;#PaFOFp}9($2*A$apl3cMP}~W*!Q;7p~F{wXEbggg!n;bIbrauxNZvzwq|}sP&kg*-XqGGmF{2aXZOz;h25M z_q=qspY5yO^U~j5u-Q@mvB(fravVv)A9H)HKy~hkyWEa=B(n+S`!%@Yyj}SAm)zS! z!TLQ_Ws36qufdh{YwbNRGu31f%1_t^xMOY~lz%j|8Omq0-x}OXN4f^LCP*_KW)1G~ zutM9Y996`-#mo*zJnA*fJ}Vfn9aSWjH6K+Z{&a7V+5YR#5UQUt{|wQz!k2vwSNJ}d zw0k5%uJApMo$>+bY_fs^uJ9#w&k#(9ry;z|MNh>We?2-b?FMLoJwv1x>NAA1&^<#m zt?*R~SN0wPwPqn!_#RISUxjWF$2~*96~3hI8A2@dD}42ih;1cLpCPh>ae0X7oq!n5 z{H6@c`j+BudJs7U`LfFMfH&Y}iv7L{9o_*K@b}#3aHA>rMcZLVAy3V>Pyap?Ded_} zvPr>b)9PO>{7mm*%wMYqtA9^m;V;3Q4Gy`6fUAE=-SdSM-mm`E0x+ySU-Vi1OLMb= zVZ8cR`C5N$!T$L|W$I++J3{OFxsLzpEBYm$qU_?bx!GsATM$8$rzGr?aDhA9xvzT4~ zzwbHKU8n1Y=@~%&^Z87jzUOqEI(4eL>({5MtJAiRrmIUc^Nca2na{VLwzOt;gUiO& zwbslsYX$H$_oZhHG~^Y)*8A!0OReE<(`)EYQI~ZMw{)-JmTeDGhtwLjc2~oT=_!iC z<|)b=%dW-NJbGq_dGvvoA`s-r4#O@mFr=VSaswnRiL<81vo|sn`C8NWz#}@jUYf{l82$eM1=Y zeT!qv`zrT1jCsGnj~MfWz|R=71t?F_DZ1bOC#2%XSU`!m1e6$4!$${{m{D`a07|T> z#SSP>6ej{oikV$_0@WlZLn?kOyjV*qBcO!2d_YO= zWdO>Ytpz9xcEWaT?ifIMe;JVgC5PhxWuv16lp}(&(B%Ni2g-_GMISXl$-xMq^m8a) zA0tpY0w~S0?tqg1KME*aKe8@>k{b(v@*&W{eUt(y@0I~20stj607~*TfRYOzK=r z9|5ITfV2ys#9Zw=ue1#)o$u{O4~~G+W$t9kiGb4ToWWQPD07x6fU@0SWJ!P$GZLUg zKY-H8aX`t5HK6=29cv$dOD&fJN@rLe2b2@c4Cm!Klz_778wqZit}e|Cpq$do4k(w_ z%x-Ym*ae`R=Dq|d(U1XU)7zI?LjdKJ8akl7tZOJh*|mlZplo+FyqEwbhYg^#s@S#I z0+gBE0Lr5hp6m-Of+w};ur+W0se~t=RN%>LB|LdtfhX4s4}vGJD_Y{oQ^h+?{{c^O zH*ev|BhY6t%LR#qCm$w~=JP)#+jy^JooqTo3Rr%i@g~ zA5mZf52-^GT<-9&Qi1aR08;T|;T;7$ggFTwDsspdEY@y4GWCzWi8sQnvxCpo48nSyk}wAO!7vp^y^-Ruw=4fFobCs=%&70XV-VF(3iB(n1Gt z!NLIGCcRhU7Oo#YUTTwtT2*jQEPRV@I{K1>1gt861^{Ok##II0XWO>IOREYvY*rOC zhO4hXMuK`(fxbu3eDo!K0ET(QsULuOg7PQuW@VJ4`lRHDjruGP=Q`Wn)=Yx_f0UjSCO_?8#v$Fj{X?Io6Fq6loP?5)j0#78ocE! zQ@~rhvB;9Z8)hW%hJL`CmE+)z69wK*(Vb@aSRL!D0+w1X2XD@>JPzI_m>JH?b;#gt zK}EFRH!(e3ni$|VrHLKZEUk&%*s`IYr@89+Z8Fr~H<{+T1l-V&R~xh&fie=T;jn=< zRu#K}2-f6x6*4=_m7eHvvPtioTrc68--_xAZ{lPx6s`cjyic^mFIN&aS*QPiU$~jI z=3KuZ`SlFHJV_$qm#2s%{8G=ko})6qzBqn)s&bCQFQ)~5#xMGcK;WOQ2va@Z3ZKpk zo&Th66D_FoOmTGsdKRSOM+}cOZ%!aC(GK?2*v8QgmergV+QFP;K>9$8hsU0-3=#iO z%U zCueKnpMssBNSiwb|2#uRr0^JrLCDKK?AxXUxTi=@ClFk zZ2$ujx+*PnbQLV@fUexa^~2{&ZL(14N<&@!X&3~cD`-GhW?@8Eenqrxg_qD3hYh-F z4A+(PTnTD))%BBlFHoL@s7!B{;g)ciS9a6zOyy6N6{6B;ULz_5AS!4;R94xDs4%)$ zk#<2;nA@vJ+lb2f-d^Jkvu^K`7we^_d{98o#L@;IWJU}iWk*C8XSKaL>}jteVq8NREeIB5}k+ zD4kvShCZl!De%y{_7WDny4rSW`;1_Gggp%&q7G4Tx#OW%s6cuD97x5F5j+HQ`FM!j z%fLf9TMG{r>;z5P+%b6Qr7|MnAr8mkp+-lEheiZtq07NTuap(Z&JYixhmIl^4CqzJ zx*!&=WDv`1po14F1+m;WBNhZ87HB{$IONfQT2C+1TtFOOGf~6vsbCo9{7Sr2hI0LbG zWj769r~Ik1LM$g_#DW0C0u6}8DjN|CM)xYxE{Fwl^;ILKZN%byZ!h{_L@X|Ir&3Nt zELP_{+SiCBXPJUn+6_dOgjg^mAr|z5SgagJESy-!fL^WRUgfFfa>U{c%j1Y;f|=pG zT!)NU7Df<@>FLtMAeJdj?1*J)P3*>&4PC^5rnxR57BpnU(ryIGNQi~Q2C-OG?55F* z0cCdg7*Ic9mLG`<&NMNgXQUX=d1GQgmx#Bbjaj&XwPHXA>m2RdtDDp7B@$+Nvq-`$ zqkA~NQNkLQjO^k3772Abcq^ph$LJo;$nwf1-@_T54m0YN?Qaq%A`5cOE_^kwY+v}0 zj(1*TL?7Nl!8O$BcJ|R-qwD-W`nl!ct!vgS?4wnw^ZV-OL9=#z;L3&l#j<2>hyH$& z^fjTlcIVzUedA;8@NLqjTD%=n@nhsQQJAegoZBnKN9S|m`f)Os<9CPk<2hSv{4UsO zC~b4cjNj+Uh%|n4IBvO5qoZ8zGa@JpUCwf!cgTv-@tb}yI(}n7uR<2b?@24X>D4UA zc^7o>2Bj>>(dU2aZ6pw|AO{-8Z}JI=9IGyoI!7!rLue zH+;9$CJVJ7M>p;IEl~t4$bp9O+boO=a=gphh1b{$FOA- z+Fo?yd~YNAT^zGr=8mMCIA&X&^LST}**VLUF}vL;WJzN-W~4D2{fyaGj*r=#s4?5N zkvLz+`VyC=mdnR%XILH|vnQAt&dYVkW43K0u`=%AY z64eUsX|79SHX8DRn|32mMjEp@WX!fboUJN$qtG7Cc^iq$uHO>P`$()v`$(KD8siLo zO&GJj`A4FyF#gEZ38(BGKqq99`e^8t_W|M2mcNa{-Wj1DiOogcy7eFe0jEvbZmpx{a zc^PAN&ej^U3w9bl+uSi@_J?Ie8nZbZH)c0F$}xLHP!_tJG5h1PVsy-=AB>LK7@%*a zVRu-AF=@=ES2JdR3OabdQpRlE@9Hrd0b@2ajM?OC#%$}%8V9{=V?Y|SOACF>4iN&6wR7uCD$G3A&8gpV4_~ z%r;$JZs#E62xdPOQi5PwH6T>ax^w z`Izkt%j0AA1T({Vxen9DY}3=Fi5at}G_jA_OKV~`wruEP%%0}DG-jhAkJ;@;po}zT zbJ&d8Ru#KZw8rer{+Ey0+_b`&y=vx*8t?T9T-}g9Cy~BCaIaqV-#XHF!7TlPrC(IK zsaJhTWPVrMQ^2;qX9ECs-RDaTw&}iqJswT^7QvSxgU>7FTLcf(HOiM5;3_N$3H!a1 zMM~IjUteN)h{%L5F_>;ss&5g@>pY)q$?VzwL&ZJ7zeVtjnKjSP-y%5smCd&ZuxdsB z6wc&Zn$Ztmk;wh7v%C2LtAZa^&hVOp_lIvuBtP7>SA9oEz3L)MzpGRp_@2o8 zZi{*V9rD2UA%kx##RCsc9)K$kK!OLz(#Zp++myCEklD!tdgWKK_ukBtXVyGB_k|a{ zr0EOTHR6L6c1`?1BKN@$b)?UTSo&k7^1)9;=C7J}*q|4jPQ*s$+XlCOHK0R2_$g#? zu~K~SU&#k>ZHTEkVXA)(e} z=~QdeZAx3U&g@j{y3HqkR~NfNz5O0|RcrG7(|ao!tJW+my-^ ztDE-E?AiXB-2M~C0<2omUt71o-vj;n|GPwf{cqP%ullE@Gdr3Gt|T(Q$D-FiI^=<# z&ems6^aBrQ$*YY5aOD9=xc-CRa;rfr`;R@O2ePJb4s8(4z zYw2pG>I-W`=JzyDOv43ek|)+e20JLl6AQ@`aODX|7!AlGPb`iLOt&eOCo(R`>~7;B zR)w)3`e8?j+z&hJNIU&oy3W$|O67++k@;&Z>IXE*4;vtZos{B-ZOIRC^n;)<$_#s{s8zu5ZA#^de1FXBZudv5ns9%-rbONs z_SR9a+Q(8Y%E1HsiOlc4XkS2wJkW;>_EL%m9+5l%R~~?bzCe~veZh2_(pF!{?5=$Q zyFy>^@3uKc*k2;~K=|lD9ciCXrKCGxr-tfO9ah*H)4x+3%YE?ReTtM1o>46dV; zx<4w_9j@vQ33Vq+r@EVNQ`)L~W_PPQR<-Irr+Moe8AiIkM2d0WNF>F$-=Sdo@rtQm ztpBShR<6B3C9GrIr|zC#CxE|oKbJ2&Q-c1>^u4ZwHb3U&A`6^p+-)!6D_*nxOXSK4 zpZ;3V(DP8O{MjtDG(1dd6@=3|IJE^oMnB(xEHAO6B)4M9g1SSMC5F&ZQEb9&1}7+w11c(!J|9ChK|k zHn)C{lH6qsfBbutmVeK*Z(GjRis2XR6i#n*Q+GmB{e7+*%ZL=i=WyJ*xkg91Zf-lZx+UNbKYm$w!%v>d=8s+bB*EZ>qkmZubVr)*+Fe?Rk_*4Ep%Rr;hU~9 zz&q)ENw46h;nB*UDyX$`6&3XNB@wVz4jN+kR>8Pd4nuntY3eIe-z0%fEaK8MX(Ijf3YhFUB4SW2_i z{h7VG|2T0KI%>Y(aB-S<*C*#%^X{wDTDeaYYvmp!tiZhcvqj5!_pga}vHrunJ2$Nr z{l|Nu#Ohcpcc@{KV=WMMp zyI`l`v&|hdX5U&yq%oVrar5qtj&k08L{JvGoO$;<$coW1n|?4lW@CVMc*gE9W>1=T zr&lxYekbVQmP(m-ALcO|0rT$AFlLjlnRmC&tTEfWHU^|IyR^{9>|kLSvnQ>Ua|_oE z?<}>+Le0BBCXd+&n0JSUG21MR^X}ed+qS|>V>XA)ynAD~y83YvbeVTQUgxDT+jNyT z^hs;wyn-8tcTxUSLCw2AHjmi|n0JSUG21E_=iM>1SCNj4*<;qqVXpQMRob3+cfPj~ z{VtB#E^|jxP8_qX&Uw762g96Y%Dj8KQOJ_UY|KdW?&xRCwsL&T=EQo;zN3z{pQWXi z%g1bISRNmEI$(a~Nup_fh1`mv+!Hdmn^IyZkJEL@TsvGn%0RYn{&YRR zMiwb~ij-)6<*6bQ=GRQODOC*RG@a+rC$ne!PZM{s`8BLs(SJH;GQZ~WBd`0tB=Wl7 zM@QQDRH^EIUy=F#qID;?>V7}S;ND89`{PsH;i~SCPv{vRiN_%30(UUh#7YpfRIM<)gTL-xsWrT+~4rw9H6 z0{{69f40B9V_@mQ%CAx8zaSMq4n0f#xBN6H;xe{G4eHnumTLRhz`;iCCmA?cr!CzA zXI}-l*3>HW#4YgyC63^df{RbdTg{dfk$N?LX}{v>5hFx$Z`vvef5)#lbfncO8%9v|GY{ClS0 zR?gM}$^|=N);2eFX*AWrtp~}71e7@(7u;%el)f?E%j70J#J+@en>plr_Y z;1&jWe~&nC*Tz&l% z3AzNg9&;XRJf-$&-p}mSU^_8i? zEzIpzr0w9A^SzDecM&MN%pFNN5hz=oGsvuga?UaZD7PDhED0!MMgq#{2Pj)P4wN}j zK>3-%3Bv^)_bN{$jp3=k)l$X}TZfx1m zPgakaf3^(u;MO$PC7_Ik9NcO*0%ati%wZGUvZ~mPLcy)mDb0dgnZ3II9C3x)>Tiz; zTH4+fKQ3ZhuSv13`xSdvtQOuOwsoLr8QWSA?{WGMu`TXdEBep%GQo=bNPf8CrAJC6 zyi|!Ky!0vAz+R?*(*Hq*mmV$QIJ|Uf;Agzl9sfK=`E~PnETrPc=-w5`O7Md@HF9zA zgCR9%46qqU9Dxl=XBQ3@c4+plu)$$Tz~*RW9}8?SFXD{`*kENLxFTW7<7AG!|9D8n zj}e#xbNMiZ+{=I|Ia>>+6zqf;+T1ZPWhf&OOyO`GOlfqKFl9tg7P=gm@&s8i3RCEz zqc8;nw6i02hj`v3n8K9|OnEYN@F=Cgl&55vf&iET4KRg#4NS4CP%y=>NeoCZrL@pt zO0cj4OmPd>51%5n$wI-Dr)HRf0GI*|FvTp4Fva_9+g5l9rf}H6l*VxN^(RWu1*SYz z=Ovh8y1I;Eyhq~|+%!B*`BMc2Q%=h;1pzPx8eoc5Fv1iJ?Ny{*U<&5;D$+JgalW?^ z{Vu{3m$@S;C&Cn~a~|Srn3A(hfhp}qAxnZOn2}%#`hh7{j>8mA6ihioL)7p|I__1T zS}unv&agZVQzn=h&dYVkFy;9wq773_PnRYJrc7yKhbc>IVmEfAp@Atckf9D!rnxS` z6f|U*(ryIGNHB%N2Buh5>_#D&awer2Ov&uk{TGTG=inyoS-N||Dc>yS;2tad08V+O zXo*vPCf=X)A8-mctrh(jd7V}wtBs{co*%r{9-uX=`r z<8aC|13%*wZ7CS|Ij++kzdTR*byqn9Qt@MK{04D`F!$^e$~axT8nF0kA#ATX4r;Kv z=6FO0duz@ZnDZQoBg~=T*@Xoacqw4cGnIWT%)#IS&3OCU+Sw~pqJyM#$QZrE}AmOb>U zf$fXtA(sGdw%*Py@oX)al(iW@^N$WPO>mRKmHiDOqp{%2NTXX~GM$((R^6hDy}9+N&vIkRw$hIiOyaPC zNsZxh{tG4O0+Y_xc?l+&u5t|BvSABf*Ic`iu+Ck)g1{tig3ZI1D1WNp=3f7q873jv zxVblg2AE_O+{_mt*9t_6 zTCwj%8aABoZA8C|Fv(?p@l#HONml0!F>08UvrK_W?M5L>f=QT>U=sR)Nmh=-Bu=bh z(u;K5t30(_4wIZ=c^oE9Ff*K&>o5%_nVv393{0BR#14~|*2He?NJ9shv`e}X`6@4L zZMiPNBw!6Z?T+ji^lyy z&Q2KVZbd9-yRZuw=^Da1B}RIHc#qJ3z)0M&0!Esh`CsL|iD9IdN~C$e6SVc9j-?%+4*Q<^%WSWDuQVi9u(JPV z4tPQHJRKx-f%@Lu4#N*a2k%z8VTT^?Eg$$DzLe6d5C~fipxZZpt?o1Alcu*y)6TQ~ zwJKRR_unqA zJr@d`@y9n==j3C(w;AtM)PF_)9ey(XGPlD=BvLzkOr+fo7l_lVK5pqJEd8XVpR)AR zO8aw*w*%^FhtEIM}rX3b9w`m7cWVW~3A+tNT z1N9H>uxjR(YNw;@dibnFYKPB@s2xt$^>CruQrE+Oi=*u-Ed7F|U$pc~O8XnE1#}zq zD}nd(?Mkp0^c`oTm=^dlbnrQ)w7?m;1rX2z(C`)-`P2exs&FNQqQ9Ws$G6N+DB7=t z$wkuwi*T;ppJ)^UwT>2q%N=TrVS@Gsau^S>VWUuyV%Tj}z`)3=phj{)C- zRQwnl*Fc=(8rapVu(Xa)V3GFu2pnwbRajS_vt~Cq-wd36N7toXC~=HyP;jv>g&XGl zlBREdi(lI7Qv72pRH2Ac>~>&XlR~i71XQRHcwED*;v0ZbnwFn)=seV za_Hjn3u;^>lhwlCg;e|)32MM>2Q{oVd#g6~#k%_at2Xyqx@xx`;3~_Y#`q;FmVeK* zM1?}f1T_kFiZ8UesduBP4r+W$+EP%1!*O#zjgE5eXGBmIx}3S6@5zc}X9#N0y;D%b zoPo$a*sGAmpvI)RAMPT|{ag$kd{rrPKiayaUZR44xgTf~`4}VB5w@`CGFTg@yqJn_AA7}__n1ylf$NOyCR(L6>!C@2B zXbe|h|GorWf*L>4c`2x2y2>ZsNlR3`f}4gvR{m5$&HbE71^xXi1kC+FLr}vi80UU4 zv{#X)zLJ9)8|F3;)YuS$8knmcbd zP~&_R(VqJ;JzbiZpvIIY_Mpbnn%Ipk8(LSxf%ET@p+5IB&2=fLfrdQy({2RHNI?w_ zK{mU9@vSO$8EWn)WBkkx*z!a@w+It%OL2{F7IBRirMSlNMO@==DXww#F>#Iii?^*E z*WjiVFzOC7JFT6WQ9M^Sq@PG6jPy$pVI&ndqlfC5Tj}5r`saJUeA`!hD(QrAIO*qs zA92zz0zcyYA=Ph`MK__}LMnblNHx1*w!e!mG!r|d zS~a(7!66lua=5f=!66mZsW}d*s7TGh;AG-eq*HqK-LYBfTkpC4D`kj~3cF?(?wI#n zPc^%2AQe@J5J=N74ymX~A#g}Vg$lvqkm~Y-OTUvjYQ5h>Dt;^+q?x8|2gtwk2P$#q zB)Ak`eamnuZWE8n5-yE@^{oY$a<e`eH#&!g)ZmSw?D`V@5%PrJFdE9cK+<0pF{DzisO;b-kD_zkFK3pJZ$a46V+~g zMS|AO>+yGOQWwA&7seNjV%(>-@@_$v%1k|jUaulER(w$d+BsI?o6ED5M# zMw)#>KZBi><3NoQYoPWg9cu?WOD&fJHD_2J2Wk_{4Cm!Kw1Haa8|h_v)77P!0c%s5 z`F!hXOKWB~xNPhQ*7V}tH1{R2hKBs&o%Mct`%-JT+w>Yb9KEb-xTSjyx72fN?XHFw z6CCBRfuq(~b}hExXl5rkdelG{sND6KghhW?V9~1ygR%$zg#{LUk}%?4;-4!T=h#jX zZiN3d(a0yB{YCLE(tntH<6hpvsK1v!kK_GaBH@7EPE8z7>$hfZsQW$p5`cw!)pngT z4xj!r@FPB*k+S;yh)=H+_`p5Kr|Bj{ys6HlZE%yYwV}~U<<|{(6{O-v1f$>*1EYw` z_#QQ=V|NZlvAyOv7{%(E<6snfYfb>8vkQj{nf9s`5=Ssf!LtjGjGtOI*mK!{QL0ct z%iRnzQlUK|B8P8UiAN&;Uls z*F*-nM*v3sj)4IQjFuKU7!4K%FghtR=oYRY?ku&*LPZ7z#p=i)0wROZ07lKi7#Z{{ zqHQa@6dB~Oi3~P|>q=THL6^wjm33YMoTjTpB9kJ6UcpVnb;_SAsK}r`Q(H#{5fB-K z2Eb_*jFCYM?Ny{BfOAY_5OcMks?v63(D~j*^wJ18UFMFYoCr9r&Ka!LfHP;A0yx`^ zLY4$LF(Uy^^aD7p90#17SOd--b=<2wwOkH3ond(#a858YoR{m+2Au84py}z-#DL8y zP3%x?X-(|LmJJ=jrl8m~*Cnuth8!7eHv(lOD8^v}#jGlJqi8{~%&sGY^?E0@gROV^ z?*fbcT(}1;c5Z>iZkw>!Lklbh=6bhypU{86T->r+nCpp>-@@X8>t(kv*JhD4ce=AM z*IV>|yvpWViM?urgf$$BbEg{vKVq&;fuAu~cWkw*^6Q>*6-dR8Lr+t^%6Iw^m)HtR zYn0^J3L9&VV=JtyIb)F27KtO0qL|r*Qwi(M_IJwxkIM#0VQ_(q97$n!A#fyx`Gw%( zon{^yyc?yL`-}R!$sD!SRUs8W7T!@HDVWPgQsiC+lFHdyNUC5bP}AlnPevrQi;PG} zioe+p9?1 z7|8kFcJ#-Hfn4Serksd@tj-xf)EFpdnSz1ZjYXD(fiNRsAoPQQtQ^NcoG1)*itgUS ztLwN|d1|>F13AO;I0l+vW;id`A!DEg7172(rl(62gMp?rv16d6HL)98HgxeN=V`7> z7zhm+1GO80G7<*ju)#o96}y251LbvJncb}WI#Cy`t{J_fW*F#I1qM1bVW1lp80b4` zZgfUiri?q?QoQ5!A21NNvao*4*Y_T67-%nve0}deI_g#XTDqU5eM|ROs`b4Gh|F)b z^}V)&l|^=}U}e3tEnxLE-{{l&-UA_ny_K@Q_Z(fPtoeqk+b1NfnIwypuy$4Jo!=ue zVZF2IHlXsgA>5Y}j6Nib+U&}mU%PQ#^tmvd?gfA|kNuD?yGPr?K zJfRM6Jp-;h0SRk4$s#4slQQ*;Gejoz4AX5&KB>awO?RY=oir+$4KPK?b)} zia%bH`~g?~fCPV#rISBQw<&G;BeT2u1G^^pwKBi=XeCXwGa?x7=X zoM`DiExnggdE(w8^M@>Y-$0W*aUaOw?n?2*xyci7gu;kVr9x{}f3v2JKNWbA65L7wG>l7Gt=dgmsJ|?k9Lc;K%pQ zPYnD=HS;&xmoV_36!<3ve%xp9nyh;6FyHe)GmqDPt0db4@SO*#RE#q;8}v}OLh#G2brlQ2KTJT26$0OqkO~)qi!IX8v{{s1?vaiM%N+H9 z|AJKf7+LQPvmNO$OZV2COl!S&n_JHrk-J-@!}9Mbt-QpZv$Y}}1v>>D+T7WGqp4o+ zeX@*5kq!>WMLHTCWu#+7P!_tJNXJ8DMY1zQI_T^v(qUCV3E%Ps%cgS0g(=9h;)#ziF9x$AkyLY1w4=<9i@dH>EMK9VTVYETeyC>KrXjX zk&f46q2kzzbRZzo0S%E3voJ%DW9DG`l!qmU&aj){!a(P6<8J5Q*8WYS6=jA%&h{lIhL_4Bkdb%_*5sfKL>=BKnHL)98HuM|S zW9C0BLw&vXG}onw1{!iiqumIUks=x#HW3Z0id}|^Xncgy?9n^3SNA_EuD#QlVj35u zn8yCXJMlgCpQf0`Yl@i0t%aHP60UfNXc^NuU%U(SA7UEZv{v*#=7qA?&rc-3rD3jz zOC-!yi6qRW4Y6kqRJrff|E~>mJyODPnCnr2A2HXX13zM}Qv*L^u5=}Kz*dh{e%);z z2dVfm7F!|C*vj_+8i-e8B1c=)spdG^qBb?h(H8ZnIgYldLCqP1t%eduY=tSscgAcO zS`xO}@t_IViYi28(_kxVQV4!&5Q+*F0>@U=s}L*>p|o9|vawx|xpxoU&i=LA1wCHH zt3NyeQt@L1X~CR?wBmL_)+&a-;&wsgE|J#w?SdM71k%dcT1cy4C(zU8jzL^P4v@oDoA&W?B(sn`Ii`Xvc zDbT?ql(JpWn=;Zuz;;2E)IU_9uY!?I#NXsmY+XZ=_ZQBYjAuSFYq}3R%zWyW$x*)C7bY4PQrmGx=Cv6wx z72G_0n)0U#YP+EGGSWi8c0tg9w5)=0yC4kJ#)3*mkk**(f-tvNk+!!Ba=y0_{VpOc zm$@S;Cn7DYb4DpO(#lz;Agy+zkR>54%t&)b=m%+8IgYeAQAq3K8f1r0)^V@$)N(n} za)#w`q&30Ja9*xMMp~ax5pASpdb%_*NNY+HJJMQO6T7ixLu-ch!1+(gP$4aC7c|Xv z32C8WuGucA-3XMCkQRp^E!!^0s$w?^Z5Q+@N;9OD*{l1X7WaT=@8|a>oV7=Rvo1+Aw&9VMIu&N@-F#940?@4fmDIE!1>ivDM;Nc&C*dp{p*IP2*W31>Z9B;l-2$(EC4 zN8bDSnG%k}Sl=X6f+f!OA{1w1jyDX7NoCv9b^>4rVUD7uwE{Ir9GVAr(JHPzuaRC?&2T z&L}0WAtrZ;QpT?#ZlRQ%t%Xtwb^;7-?iiHv92t>N3Www3L5+?w9yB5-3tdh;=moN3 z6s6EZM^Op}XwOUR?hp^+N+urkBIw{5N{I)(HKP;+#Dky#rI4?Q2ia99l;YPU1|*bH zTIeVxSQt>sq*cCd;rii=r8Zfpc+lH2NQH!v>`^hO4ii zDM1&Ma+c0ZD8+P@L)fHMzFxsi!?Tq?RZ#Juw`Y`sfOrrzpcJcMj0a(8uOb~mDPvZ+ zU~aD>ZO4P0?`=fCizvlq?nugsD8=fWNBA10Pk~D1{Si zl=4CyYez>*EtjJdXILIbDHF^L=jA#~Ln)@GOA~`qrZlmml%+MX8(TJXL@8S3JI!?o zrJy0lgW8Qi840Cu*u;aZDt4n#JSd}-%&t*N{zk>+y!SIVtrkxCf#N)lQ(hvGaLUU? z5>9!NaLT^IDcUn)=I6pkz3OEWj^dQ=c;uDJue-#nAQeAGKk|;O#3K|t1%13i;)p&_ zF}pCl_N77}XDj0|6id8bF3w z7(s^j*|x3l63F1N0U3?q>g(r9&;?|?QRgL)VY<4EKukJ$1vd@fr2MIZ0vYFLkbwY@ z0SzF-Di}cqhW0AbE+7MQwPUK%Hpp46Ab z0vVW*KnD5&8CH&i3{I>;#_M#fJz*`iTn;jvVR;;6OfWN?m+LSMWSE{VO$^AG(!>rj zme#~>Y}wES$e8B31TxT&K}Nd~C?kOk4jYhRRk0gI3uI(=12XD&iQbvM@ve7OT60d{ z)Hu((L}w}{BGF7=+X9Qs9G=$E-bb{Ig}he0cj`aHLbzwOFvf$LSjd|t62^GDNWvKP zyF^E*%x%)stKK5vD8|s9x`Cf#A-(EtfuHA`x?_^_m0vfNcR?zCjD42~aS2PXw1y=f zCc(y<<17T77+33s%)W5CWkWkdoy9F7A!jgAuRj0nm? zmjia*D=S994qbN?>|j8zLe>TBa6bU-d;mH)PbpyMT^Z~k0PH{m*dbp7cDQDl_wg$j z0}|LNEp)IGEbIVw+`{$44@zyaP+;fX8SEec>_7w9F$*Ku@jlzO6(06WkCcC3OC>|m(2_Ey>j>|m~T z-B#KLJI?nuqTfZZ<1%+7C(i2oheQ1U}tGf?8cT2U4Wfwu1jDC4H@jT z8-X$s*x|4NJ609DQMABLX4hb+#yXSU8M!cKNT&p&b5VOj?jO= zI^41X)>%FCZRPzpoA>#ML|WT@vbJB>QLnnd(vMsE2}?g|>8F%xo%g3j=C5n(yg#dH zB-`lwb2{Mtkk5;zFD0N=>%2b$8GKYJ>%29&W$%Z;)y)#Jee*^2uJ>e-lK+tsy&v)g zkqPgIm~K<5b>3gpc|NI@*|YsGiF<&*AM(PPHLu9uia7VY=35b1wW9xJ&YaO)nEOPx zTHT^QE0O!;^E%S@=a&ADrC+f0i0&C+|x>fh(Utwr~D^?Gv&{$=9VsKKX{o1fQ60Q!1YbASa(>_H6$`aToImR;}oN zi!PlC6MaA9e|4mtyDj~OQhDH;BJw< z9w196514LK+VVhVClA!$5SjS>4D1R%*kR`5x>no=-;zi^I8NIl>qz@DD^=~kD>8qB zMQcxP)&6^s!MBxC`wyhr!&U7eq4s3yRD08HN?Wzh>{k0fc4p0K`I z{1^>aBP*W^v0}kh|LxoaNs$y(5vcwVvP#c6yjb;LO7K1m}IWZ7aO=1jk|X1lJg@ zzWxUZx;(-CS?8rEIMdYy-tz?K72GuZi}I%m>Iv>6RM6j%K)@3mG(5ps1>+MOhH8Uf zrKzt>eMbUwwac#3_7j}*y^ZL1@d?gl?nugsPjFV}{Pa^l!R0Jdp5WSzLYDLdhZ*S! z4*fjASvmd$$BBA^`;K7Q@Dd$sGgM10mp{Qd!}9nO+ypbjdASbx3GN~lk@`T|gw*tO zX=0w>rZllX!7Z(c-Pp3BKdK%x|6LjC??_B@U3!8;Lwd^z#8&3u*R-J-9`MG#DD~AN(&v<1PeRB z8nc6A0FPJi{6Uz#3?PHCDk0YcN#1sw(XQYcN;ae=2Rm8s~c((eEOx zahW@kaw4p;I%h~w!la z^m)P>d+GcyiI#EcU4>WnZO5g#W3A}_j1q}A?l5z(^68;SccYzTwlK|lk%Vc!B7F65 z*|9>n=1^PbcV!7{O!GW#Y?;2z)8DMes^JC+b^ULIRQyovvcH8#u;vpx$Q)_#i5)a( zk6iH_SJdCfStm|}66Bg)cvJp9&ccUuyz?3(Nx?N#&dwgC&~Q4xkA7}BcjO;^Z~p5v6)6k`LUT1L0RZ>J~p#ORwO&afK5Lb9k4N=S0Rf7_N33j(5v|z%vGR+ zot5%Am`~;b8v&n#frbH_e1aaws)18y)+ORy8w1jSU0Ub^cCauE*pog7;})(P?k2U# zLVXVAQ+dEfz~^9~VZb&E^s z#(eSxbG4VF()K4`obPQ!zl#I5%iNKa69;Uoa~|yK0Xt`zGGMnGg)C{n#*8#zqn`oW z%JBi46YDs{t~%D9#+F(xAF!Qad3?a0U}iWk*C7ws7KiXYkm3-gr%MwvU{7gcAF!9! z#BOZa&@m37&%I1@T^g{_kU#g*ZUo9m12%^Y*jxBEpH;n-}`IhI*SH{e=#gAN@bkG(Spi%?n)yq6j;p#aC zvVHSU>-kZ#NXf6HMDwG+7MUl0iSuJvwW9w!&dl?p zx3{|QC6UjMYKT|e_qB9CrSd>uWd2a|!0(mWJn#n{;DJj-lLyct4+s#*1A8mQ1D{PE zfGZC`wr~DL?E$h#iQdt~1Ai8o-~rQZO67sS=sfp8X3zHjDz56~^X3!hN3m-~|8IUS zm@T*e0TOxpZ`Dz+(ueV={k25qZ@g&xlUudFHe_(1QfmLXRC~CpJtVY0Svs}9={BXU z_Rs8Y?T=NV{rwyEcd+)qjzk)p4-sj9!~VMB^s4JwdVNc8VCfAly^+%XG4=)Zzssc? zS8iC@{|5(byt!QmnjYAqTN>*5g8HG*!NE%Tg8Jtfwb-Y*S0UgF>d@_*e^vJn@=4Ro zN_Do`{*fwZjduSOQ@ejE?Q5fceL;Of(f$SX$wl)8^~KBOUbc#RnJF^c^#%1S$s+H9 znZ3H-6W3y@!d?9F9e_El?%hNG;T}Z&SM*o-$ydFOf5ZMbYlj<4q;@!5r2P&1BgE-d zH?j1lmL6&8QA+!_v=(@_;FYz&=^Ws<@C|zu(*iex4h~aF3;a)R0R*%FH0)nUK52TM zROS{4MR)jy{p6x)fyK*hTEG;U?X7RvXLhrfaq$0`Z`f1&um|xDGkn8dqqBhC%_Wlm zj}=MJZKL0?KU%{2xh;N&;h4ZbTJh8RTdTJW{1Y0!cjqp99^OXz^$>MiNX3t_-?&1Y zmwz;Wyqp5yQzO{@< z&&eE)3v4$!%E0!Bpe%Gbf$clUiezVaPNsXO=VWsRB5#ylg)BZNPx^WTcM$^HcY+RX zp_IV(7r5CTD)`!~5D?gghUaARHGyrebXHvZb&m(qb8=~+KPPiSvM@X+PkM*lEnGjm zGr8PC1-8G4g+5=8fWS61JSUrlF|h4@wrwlC^qkCL6WDGHS6@F)f-ZsW<8@woPBvZT zL)4^q*u8?AhIdi^R6zx{zeELnz8(RAZD@E-whG3;Hiq^p($rV-bMlyX*fFD*$y1uxpOcr? z#BOZa&|g-MnO`MCJ+M8^b?G@74LPvgZUo9m&&eD%fo-dbU4{y5XKb0-0b8D^8;Ee_ zHa!HNB>GL!_?&zheZ!ucR=}t`%&^zaoeU%0RU%=ee-}v@N%6H}ubsO~I1VG-Bk(gu z>W+o(t^B%s+y_$eV{`%@SqX$Nrv^C=gfOJ$i~%|KlsJMMlorbeZFE@D1pL*nKLO-m zUIAGg#Y`$8&yjNlZQ%f~6?UItFd*-nT!rC=w>(B_W8Dff~Q z38!#44yQCaN}MtxC<|Q$vH2ApCRMx5e( zwrwlCgi|SV8p8`QfB;`b$Vs*}Ae2r6bmMJ);-6&*9I0Z9O zJRkkw6f4JZ3MUGuXnoq+;fXrd_WhPxF2^a(usn`aCYTw{%XP>&Wz7gqF+E+H7@RVt zi5;gbt%=>(vZ4PMoU*pTDbrk+a0(hSPH8s+Wh9)!VS`hwDt4m~PT7&tYyv*BSNC@k z*J5A^r(Di^?Qqjt(cjq%C7$~iedqknhEqiz>nWDH=xjA|K$bc*BxgYq~b@6^E9*mi1Vz!$9brM zgPBze4sWo%=6IY3t80#b%N%=aPJlr5!hwfM93c<|>#g~`a3I}hmIQ$&#(Ahhfpi=K zQIkU8aULpE2(CzM^e~yD)_XXl;>W^40wdcF&=cGIfl8b?2^+<=4%S~RvIDn{;h?g_ zM&s8ySbicetaZrQbiL=ri3K~sls0z^HabN{By7atxU~+Aj&iNTh@dQVIcpsrAuIgK zvu~NxrIXqDTjqWa#rGtfcrl!~S8qIrS<8tfYVj?XF_FGOgUsvT4mvt-#8qa zMbFqjlV?Jhfbo%A8?& z9FI1mH8 zTSpu?X{M0-0TH-oK?jdjN(AmgfQEnP9RU$IXuyHwYa(!5vtTQ~f-xZBz|um;fx*In z11HTCx`pe9&z9O`p(1eK!b0svBPfJ`2plxvK(jDL;JnYaZH1R2a2z%fxW;hx^=C*> z&lE1_JMX6}f5L!PMhOlk%^-TkHw~Yo{HfxK%zc}R`wSuiB6HAy0j=UOGDih^73l~D z95aK6x!NsVX*)9Kd~ZAYW5j?ia|csS#DG@kjGt-@n6pg5fbGU2OTvJdkuV_o!GKnd zV?a(620TTh`|z1M?p2;zF2{h*usn_dCzu(|%XP>Ya6v`1XAn(KmnH`PO=)6BM@wsB zH@0l(;ydrtT$k`48ggW=-3XMC&=H3XIR_$Iy^CR>=Sn0D^a7EI@5Y=VVU2-C-i>*ogt{@j2vYH5^xYU_IZEd5#-Ou~ zcRBcYzBmzlkZa1jF{a=e^6h2vZp@2Sm}+qrq~gcOWE#xYyD@ppUOZkz=5i$O5HHHv zS|fSEPJ?QjJ7y$5Q%0nboWpVPqDDsMxO?%eyhJ z(0OUZHeKcId{WfLE4XoZj`F7pDr)oHJYpjtY6A@;wpB1jZ7{S~k&cYmW1=>gtF6bC zwxc%A_co&6#Sz?uv`Blgmo*o`e4I?kmj zVl&NkX~afDj@YytfilvF%^@SUy&Gdyu^WZnjmdLqnLRp}b~(Qr!%Zv9rOnR#ui_hb zwK4mZ66xKD6ZG{19cepqOJ8g0xt6|8sos`&y~zAw_O^sA%V+U8Zv^nJh`kVSxV;d7 zKD{mR2FT!5N_ku2d%9A2TL!Kkc_86k0J2C4?*iyuk#!;y-W4(3rc`fBtk-!Cg))1# zKPPVUuE=v|)|{31lRM{i&3xi{;mSDk0+TP%I6 zQhDNSBJ+ovCv0Uto?vA@p0I`a?g=!>6K{tM-lP;yd_Q>tt~>z=Yx2n=CC`&GdEyL_ z37#&anh9>SOhgB>3XL2U*4aI)(4vD;9oUbEo4{YhXEq#xr z?^P;qyia8Qh(-Ga`s9uGLk90uiZ_0cya89Gn1YCIn67CgbktY_vSD0>7+PYU{cDH*4R)u?ozhCFq##behACA)= ztUA&jtV&h)Z-~qvwdhqrZq@ypkiplKQuiOHy2Dl7A>pbZOQ);Cbeq!FRgu~0s_=IU zC%#{aRpFXgIip(5+}-XA7fPgO-fxTOy{;2h?Q+;xHI~e3D^_u|6|1G+we)*R`}bP> zjV@I3M%VYDgKsJ2jjo@_Bk7$w1iaA&4LyQ<`Hil-`8#!?=nijmO)i=@x)v`N3}o-r znIf~j^+s1_*HH_7yGt|h{4wXUQhwd2|1jr5{X@JV`u+zJ$@f1LY5V?1;`FK?Tly1A zf2y>9@5OzON__t_=-^_d`2MHa_XzMkH29u;Bfbwsckun>qVfIWshYIBn%XsX|7`;Cl9@huL=%~Uly%9*MWL0RZ>W~wfc70J%9 zVu>D_;#=knMBXUcaT&Wqd~4E76<0DdRey#Kexa0^s-JPo^Y|75W~!hezD2%frpm5D z#kc&L!~-e5Ra)rrElx-lhWOT`nJTw%{qQg3atk$6^>Zxr_!a_Ys-PjhWfsPnD(|yx zTj8bn7KhDDRb#mN`X42zXR5;9FRRK`Nq^OODZXX8%HYSO87Z&ers3a|KUGjOQoo>r zJ|l&I87XLpZ&?N7j1-3UD$>+f@~WgUGg6qVT{@MvXQZ6(ZA8C|@hz9RBPl1wx2(=N zHgpJ=x!!5ZS*FCd+Kob%6yLI|$=_*1Kk+Rq$KzX^sQA{^^tdwola70pr(!?I$T3Qpkv1LR5pL)#v9x~M5X`AM{6yHKa zo{?%d0%fH57KhD@lvTwpL(NF-NolrLJhNB#uOaTgaIH8utrh)idZD&oo7Uz0yWy0- zOC+2kbXnpQZPPGwsOGM;L9Naihg1F;_{+g5D^#fN9y>rPevIN2WF=0)oEnulPQj3x zGX|$zNlGG4LFw$m^KW>maLSvMeJoDFya+h7sjTA^tSkgqBu-f=FUb3=AQe9r{%6sDO}0ml(pm<{6oLMDZgZpJbDK%V+7z7Xuv7tYjBEPg~BO*O=3X8DW!#u zQ-XyZaEe>Fez;?{P&nmRSokViQG)=S0u4CDEQ~nC`)u1*cnPO)*x;1LaP{@o64W^5 zY&}Nn__KPdK5QCh*-3d4W-+~81~lGp^U7`-?yUT&IfPk$oiPgnFbgzb7OQN;EEwIZ zNV{Mb%+)TOO52#l`QBdi!H8L0=1!%Yh*_-8dAzSNOU^O{v$PwCED5tPr^(vY*I__1TS}w;d&aga=Stghn&dYVkm}Nl-tc_VrPnRYJvrK7X$1F>0VmG#I z=wcPkG}k4}f`*J)+KoUN3A1q6U>2*2-85ROXfiv*MAAB%N$eH9~RBf+00$3})FVal|Yron83ZjV={tnLBg>X2HAynmA^` z%0h5OVwPQGj=aAsq~ga2W`VhU%tG#EV3wS%g;@%Af)8!(7|gOsMkLI_;W*6F=qNGE zh@dQVIhf@tvSJjo&_hQt3kGP5TkP(DS-6tHEW1Mo>y(07ev>f^0x%0SU>5QR4L_TWYx+vpB=@IA)n(W;id`VH##JJzbg@%rd2k9kVR0iQU+;p$p71&25!cjFuiDGfy_ISv zcps7Zn=LvEjt@*9$=svU9 z73RUC5B8JDeXzfddes4z9;j44*eWuA^F@7t4*B39$e^zjAN(Qt0Iqxh2|gf8Cm)z@ zQ`+)DW_R@gc8&Ppp4JbpC6W8!Iy&lA2U~iGQu*MzBJ;N}AMB-IovoAETL-L@*+(?3 zlR<}ka6QQ2+Dh@kCCLYHtwKNMgKrQxBe!rUklfl$bE1_9cf2fOAl2lAKX}E{^&*f0XpP^!ytnjD8&bV zOg?}sA3#DsAWNryV7g6ds~==`*M5LqBmKaAaJWS7gPZ86SKZXoBbCYrM~TcIv#1Zy zAs^ffGB`phKKN7e0bKb25_~|GPChW*rnKdQ%3v|4(srT=E>t(5j3XR8#ps$I zwGaOH^*Q&p{(rng^8Z~$+Us-fCQh%qyQTNA^xu{CpJ1N1HMQ(F&YIeCw`)}5`FlbK zcTtMx|CT+E0MA3ieSv&=eNO86q390lb0!y!=NB)x@w_QA+gs~%GCSb9>1(5?f52nD zK1ZNh4~zGbNWQ`Y)ZA z;zp*cOHhHhkymij@FB{dDyX>8b}H!Wa}W?Wf`+(}RWQblFtk^ZroJ+DeGcYoS30Hb zxRLX{jp%nVZsam|B;~}ok<~fJTB$BnM9BHD9Zrl(626E~XD#2z91LTUer ziz7u8gA^YL9XwPiNKw~+{fvYFqzDa2k$fXaF%;baDNZgLq_}vw4N^2kW_t@MW_FDf z;~M%g&q&lh;Kb0>N?tkV9I7WY4j@&DtXgGVdH|5wWX zM}YsK!T;nN@qZ|~ga0QNjsF)fxADIzGTU4J&+Lx=r}n}Bj?;DP(t!MUiRAw$i%i7n zPn2*RPJdG1F9)Zeru-T`p9ZP;F^bcXl{g)9YEFmOBhlROb zLq|)(>8B|B*!5|c7Xf#(J`F1i!4-+qpDuIc{bxWbevIIBn9IlM7L)O=3X8>7|8^(}RT_aJpN#e)t@zO%@8L>$}A@ zPDcPvhX$N(7Dk-zeYR~YyoA#^Y;byGxcd6DBa01 zbCxMMz1=8eNjM!d5>7`yINi!|oX&~D={EwWKU>Gz{mW9zQTcfVq5-LGERMjGV0nG75GY@7vrlAmc?c zB7qDJ$AOGSM+q`U1ZAPi0U0lq6{8@7jyMW3FhHA~VRr|R!DR@@cm;Iue5HVlRT*R; z0AxS|$RJ+>GVIb4$nXmd0}{w6Ep(6(EbIU>+`{$4bEGy|D3CFmK?VXq1~h;SvoL}T z@3U=N;U$p4VFNN6!`0VcCP5dF@k*VSK!)k+G6DfIyn>sCuTuV0L4l0b8Dt;;WIzMR zunIr8Th|TQ>9>K*mur)PsT3T$exw8ZyXeHv(lOkilUCGOQ|gqY%ir8Kv3FdYQet ze{*pKGU{01JJWaCchmSDzd!d)jq|K~KeLDh9xjZ)y7&8tURSiA_S|OO`)kE}r~X4M zkbBmO{w=&rFviOzcZ~6BiG(p;E0QqAQL^D;{hy+;&lSe#jwN0%CAt~B0aEc}>m5rh zfh=Q*F>#A?bwWfAWSCue>JgVJZt+58FX9$gWEA3!s+0WmCP>AP5r6=5`2d03%K!*D zTMHl*>@-%lxnlsr>tsX%2po^Vfbe#mmjHt4>N0u&5WIq$hVM}R zR6zlRoiac`06>5SfM6Aj00Bd_1D(=Pb$N-_;2$Yck0*4Jiu&UUNq6H8#y9Nj~J~$=e zgRhH5d~jyM2X`v)!Cy3PgAaBegAYy+@02z^;Fi_G2YjFQeinmxr$oXB?-7|eSMn|i zM`IAZ>fM3AoVk+sE5Gg?AAnT+7@aFYmhpstzzuWi*o4oOU`WjwgE`(Sal{-b)yLVc zbEz=LO>Q!RIZoe+k91&O5v}kwO;}k7u1J*fL75}(e+W|XV+5tZTs}%6_cBmQ&elRH z1v>$THg^n4d7q3(D22muD5cR+qLdLqS?F?5%7{T zRqRF~l=5$sW?_uXUfsWyxc|br5^h>6`nUE%iDQ6MPB5JENr{A0J}WX2r+iw%aX95O zfxjG_^54p@yT|`PDt?UO6l5h%!JHbEI8MQknllEcd`{wsQ&2j)aMzn&DxC6IWiMhQ zj#DtNfFq7mu(A+bkvQcGGDqJ3BBbKS2u^{ye4Ik=W#E*Yt%Xwxc7hCT?iif%c^Q## z3WwuxN~5F1DIYvoMKm@aEf1(7?5yEX`$nkU||QG;ufwSeobnVg~BNtGEPANPJsrTVirc6;(fMl zE4+kLIBalAW4QYImnG;n$TvRZuu(W5y{6z$wsxQ>=m! zr(mcyd;JZGgi|gQX|MhLmN?qe+|ut@dXc5yRoZ{@;%k3V%-Y}Y zK?mPd%G%$}T(h57B&b&*VC^q7toIwV&YspGzeF|DQ2H z`9HHe`k&fQ@c-{6lK(FeY5V_=;%FydOaE-?Uo8Er(*9|S`ya*l|8LO2AC%(%U9 z`9HHe`k&fQ@c&BHUjCmIY5RY*INBA`(zTZEXz5N$`%hoo|0u@)J3|Mnl;Z#0vi}j_ ze`xSO`9}O7itgb5$wlM;#mjB{Z;H(Jmj5%mqyMS>1pi-IBKd#4NZbE&;%NUxOE+4& z$1pn_Mk^FxZk+%PL6GuCYS-QKWSF`l$O8d`T-2W)X|9e0OyDG*1yJ!C+!2i(T zfAWp^KNQ`;|C5Wx|BIK~_}>(n?JfUjc1QnH`{4iCna3$ksr~d7kl0fq`G0Sb6sNqV z=5Rl*e?2bDoTho%UUf|g$Hgi43jF27Df`N==)wMwiXVqQizkEr7B>B8mU|;ELzP%m z2PQpKi7hp!6{>vekxX*#Bk?ousa0w9IsT2{ePQofvwIa~%`RN1EOYuQl*~wBf+f9` zcH~hLBA8fR1S&m(iSdQt(nT;A&c9i!)~On*>8k#XRjpl~wV+Dxvt^HKzI0x5^=qy0 z{$7&I@2zBR<@`P(TMoYVoC1{#`|vT9eZ@Fv){YNcxv;-jmT2ds{Uqu4mFQ~Pw!i4` z0M$ngdmyCZ$H*3@FqaVU zDEXQYC>Quv-EsVK$AA<9EiLpAXt1zD2-GcHKfI3ACJPk;y*d{9_7eyQfkHzF)GUl4 zQ17#CTj8Y;D2Gi5v@u+L{U8atgg_70c_{>Hy1K;22!VP9Hw_O_{!~GQK=+`6{#qLX zLZHwP0<{Xp5GaQBD$>+frfxrhx!S-_X*&e!d~YNAT?~P`%pFNNF$8LL&f&v41e&u< z34yj7g)AuqiWw;cihe?%R*r{2IZ+|d<8_-GUQ5Tl%2UhbAy8*n9uI*|Ff*K&>ySgB zcTo}T5UA!*yX3fludWY^t*Of^4=SCvJ zKPqnK{=z=9I(VD@e|kG4v-t?4^-mJNk9jPJG##n+eN$PHuB5y4 z{2-a#0NivAc4^;HrTxRCaogdPafFg&*-iL;QzZ*eRJ-+$&80Gqr zMHscSFwfD_vT-NDxMOsXw(R6y)0^9Acys9BdP+C!)aze^FL!C=<4(N+G{7kG zNz<{?~g91`F41Sl7R;TeypcAh&Sc@D@^=EL_*? z>xuBd@4Q&I#a@MA<2vm(DjHyvS-7r$J5*k|H+SW9MR1eKwsMs?jOtY!8;%+tsiWSY zF<#Ak6r2kFo}bnY?yy(sD>mu(XZU>vzZWi0gE_bS0^iZfnIM)GQ;xrzHf-u2kEI(o zZ0z5~D-Xo-%5NMVV-{KSZ0z;-qVg}%;M1!RY~0uzKm)|G%5Uu76_p!$a~o0xs7C6R z8Dh=N&28PIH#awbcb&cMI3+{O)dsOj#lD9)7p>U$B9-R++=C;;a+%+DC?`TJt8<1Y zb|vZyd^yV$h}CW|vLuLw83|&cpApQ;afro^f0*Ufa?t30(_4zZkJc^qO*Ff*K& z>yRN9JA8${apad70o{}?%?!+%(#+>uPg`0uyTN5+|1<3JwK?5v`~!v~?n^KW4Rf2f zJxCouFu{61y?v=Q+--Ud9Y|i*HQds@hFj_yw!0c$OhA&u21r_C*{xDQGVf!S*DO#h(&C&;GvSd8u8Bpin?Zx#3vU*0ytT@J?<%#)LdE3v!9tJ8As{9P4PeqN zj4?UCBHFgXOEEbPo0wc7v0Hf(Dk;J4=HhTp(4eze}se+2hX+NAg zCWnBS95et%t6+@DVW>84S2_Y1$9%FGb9)tOJ0|CRZzFnX1dJ|oM^a7%j8^9iwraqb zvrGYu?M5L>0*siE03-SVj8={VMoz2&JH?b!Y>|c1+In zbZKJ1;*=(KD7CaEc4Nzij$lzxYMSd3SVTjP$+a7SG7^;Huz^xm6}wTipj2ijC{@Sg zG!bMt>gffJIyd2{6AK)*HsPp)3LFJqdYE`m(0{;7+_74C=?KYBGQ4yTiG-K#EmFKY zu})r~l5(MIK90Y1~ln`h{P!_rz2y}m0k?af+FM8-GNWp+!g{%um;YtRi zJODcQccp-o{TLySvv?8$KngT~6!JA7#jZku6u%}hAc2(9LI)|q!VVzCEnGi5S!$Do z0x5kge2Z>;+NfOuKngT~6tggb6z{WbTj3>;!eIka8pGAsPm-VpDd&doHK%VkvsQZQ zx0@fR{0Y2R8C^y;qFr9`O~VH%f2z2^%l;X>AOO5T19-8DNAN-g^pOdrUBCT&om@!~L)RBvko&g06h=78if}((m zIp?gHbIxMU;TfOL_n!OyzwbHKUDY+yGkphT|NHrDoxbOERh>Fj-SwU7bPS7kkJ7eY zc5kWWa(Hot<#BjvaWmO3wjsjHvZ`ppiD;xQ|tsHczGg=q;^3us;fJp;ybL`zTK=peS&O?GMW3n#PWo~j+^-YvU&Uni=^$|Qbyf<)k#yXs{3ANqfa>in?r%j0Dn z$1nXvzaoCwq`Pm*W0ZUAren`vH@9X<)1)i<7wAttdck;oqIS?p=Shf?KlVFWO%B%( zSuEIO+q+pmw&07j}~f^Uq4*d&MEIu#r*QB+iB0W zGhaX4L)nvOMOQDZUiN22aW=sk49+|FoEh4AXSIK)XU)2;yXvCoYF%(xXL*wwrPkEf z52<6~jZ$lp8>Lo<8>OBschntEL6rP4a-$T=h1JL2c1~BOwyJN!IrdswoLSQ1&6p)0 zwAGRixpUsxX>q4%*AHX12Jd9*fF4cl7~VNnP6Xaz(|KoST|eB}uODvkrkkId^c&X? z>%uETUTM%vB-amjZeBm!IlF%NRAS1@;1;SWD_%Fm=Kd5V+apUo=27>h9>)DBMNvpm zVoNECi*a_{kTsv=x*_KiE~=Ht!Q+%JUZLpi#Z-NePAWx-LD$^|$b_QEr;_}-AqP84 zJ$~rpK%l7HL#L?3!-S$17Z?4yA!|O#bwl@XVK`8+!NY~3w>KVMWE6#AX`vV(6N)kq z7yP>6#$sV(I1-w^a&!cWV$&&Vz8KVw>j-+93=8vqz0k;M{_3C2$Z0;mPB>JaKu%U} zKCNz9+~U^>S^r6{6MADe506*=(AdpIZ)+qc3`?7f0Wu*cYwTvfPPnO9aHoqB*GI@{ zX<>=$giFbFLfkD%QmK>cgs%7gV#KE8I)HJk(e8X>+mLKn!%M)|JQ6|`n2P)8sqHX)}gax0cK#ZDRvS4_w$sw;A; z)_ty{1D5M&r%9&Q&)yWc>F8|TXF=QpH{Dn==cZD+Q}jPs_u=%_;HJ;ZuCCUp=>(a? zO(#hNZhDwbZ#$~q^Y#Dh#!b(VaU3_DnCLrlQ&FCrWIFiv)lFK<8+V#}!iHlnG>Gz@ zwr&8X*uDR%2vg72-#Yg^2T}6JSeU|`!xXKk(8-sJ@W0Ybg{fz1=M<)>Vt)A{YQbfI zspk@as|hjezM`cFQ#hM3lfx7~XNK(wQ>Vxsb;olNC4Y>-6w29Qirh26RLs_ZsZ1TX zrl}nRQ_qqU0jAg-2UB$!6*JkXT{mNm81hPIfvHo8X$wqY^J?{>32l$SlzG%0rWp65 zFhwEydXmyEFvUp*m^vLfc)C(xYM%&G7=S5c0#oFxVTywtnDRp(2Lepx9y&}V9(I5! z_i$l&hKday3Z||XVG08n}6JV;@L1YOqg&P5;C?6uQdK{+Mv4W}7w5@N|SZcW(rd(lp9Hv^_ zO!kXym;_T+PM0nQrY3Z;!_>;U*qzNgI)kZ6p$jlY2@5q$H9LVi0!*=4!<03}P8toE zis}GU6-()UQ)8(MGnTp}u+-BtmfBM+1WO$vnX}aMr8{5$6PDua)nKW(26d)PVySZ^ zTGyanDC0PmIy=#KWGQDRTZ4L$ayQnXP^4>6=jv~rWzIvC{4o}rFz48W!xbbsHsNZe znTky>*3Kz5QN{f7#Rpv`Y`R3*$6^!CW_0A(gwL5_dt%c|<&L`JWr&hLMz9Ix?AS!^ z8L%m4YhY8R4g}NGj=`pv$ccbWY>vaGx{Mr~MhtnSvtZNt#IyyQuz6SL(;(U&!6x&l zJ2o-yN3n@QiV|BFY~p+ZHeG-moTU_O(xWuh8WaYw37KFM`D$$9UEZKR6DLC=;bo36q_zm zo`6kOZkIU~Z1To#9==lfLt}+aH;UMV0c=7h*kp}Ou?eU34Hl(cunBjIlC+6UuJ`_8 z#HQHfHV-QGq}XI_j>u7AQ_L~}o0=U&mViyT5wMB!!6vK6v56fkYcxT`O1C~b0+>%G4iu_-sX&4WrkDK}Z0BXd;T6thg=re+6`C2$jN1a6{yxXJ2q zZequZo8GSNqV&{qIXAh&@;EoOxS8x1+c1fnteh@g3^z^aV&|rnb+J2}cXY;0lR_7` zi4r0=H9LVi0ynW)bCWg2P8tnvit5Xmn>c;7aMOEa5;uK7qLrK8C*wG7dViu{IX8V! zxf|SsBITx!=x?27K8h&$V=Ome&bbMPD@t;1!qrMMm76}Kol|b2iuvWM9(ae!%ZKS6M>u9 z9LG&{896tN81hPI;iiuh(-v;R=3Sw$vS@pRo6Mu`+{Cya-}aMP!d zgZC6Edunn?9pFft#${E|V(UTzyj$BLUisqLcl)N(mDxx(@|H?_E#>=)ZGiJPpPE?o>aP3U6h zrj>QEJDYcO#!Zt#7r2QMA~!WVfjR;=u~~DIHN{RE4Q`6+%bA-veYJ4Y=VTH$eMzE~ zo4z39IBxo4qF*^TeOb91+=L?KrmyL5oo2p{DEVV7H(}1X35P36a&E%aN;8$4zM`E| zZla3$-a}z#ihV98s-;g`%j&CAL{utpVl(Taaxo6;}n61H0 znK~d$Q#*#6zA7gIH?cX6o9Z%hZW=Mg5_`FiMNpA$GuG3+Fn~(`Nk+0?^4tBW74}Ba6+?0Fh+?06Oft%dJ zh2i&9Z17Orbc@JM7~m#k!cFF3%1wSGG<`)ExQWf0n`*~(1bthEm2%Vfl_zkMmD^=f zg`2#wn}Ta-4r$@Sh}jM$W$+~z^0 zo|K!c&5=1OZi-nZa8t8`$P%~-Hv%_NKHOyWI5)9l#ZBMQc2Rn2xtyC^VR@XJTHH+b zi*1<1O;%2qE{2;Xbg^^O%DUK{%{w~drb(d-+(ZeHo0^?K9f6zJthvdWVkeCTH%0a3 z%uSrWTDa*_nZ!*$k!aBmy^$K4bS68OL$cUlV;tZYs+EOft1T zW5-VZj2&C)Gj{*b-#YjFH=^W^u`q=>hbdZ7p_9WD{#Tl*F!gusoWc}U%rF1(&X)6NB^o$*6uLeuSXY6*= z=nzY-m1tdqS|j5)mYPrW9a$=Q#%`T*H`bs~q-#(+>u;T9HXus=7>iAqb8N!l3X&X~ zaJAA*#isSzImITbm|s5Vu9pd$j!^coYfw0w(UD^lK4*sQiA`6KJL-;I5G8+%U=zyO zv5DL>U{lQ2z@|(c2&SnWgH1chiGWRPj>D$9j2xRr40)xqVADoo+Ja5kyestaS8b1A zlX=t~n;7?_*hC>kiLDDZaXtZ?mXL$hO2MYvMr^_WHX##iB43S79PD6|ANn{DuqpS@ zu_^Je12(yb3&Tw+Hh3s(x?RL33}6#7!6x%C#U?)zn!ch7*u-XyO||1Xf)-?0DK>3Z zo`6kOZkIU~Z1To#9&SA<#_ZK5J z#U{6TP^l-yCTnvI@>>#oPY{HFzO_UEdSv`(T>{wybqPF!NWlJrWW0NZ^ zk7HAdo5_B$4U@3R%IVU@VAF&yc5GT%7rV20M`zeHDRcpwC?R4~vlFNzU=y1)Hd#~b zq|v~psJ@)npg4WCaMP|biJNwlXyv9W$vBRiuAJys&P`WQ?glrZNV#cu{jJl?)e$9s zjO8ZGIXB^OMM=(0xLRqZa?@3{bIMIrF~5BLp_hr9&R6!a+=R0k9yvGRb7t6{+;k1O zqwcsSqU4VeZbCUbH<5b=Zi?9&+?1&U!ZfvGxan$gB5)I%Krv%2RA1Kfm6xQTo< zH*v7TO@8R(K;Wj_L+7T%!w%f!9xe>8qhf=H;-))9Zo&XJAro#g4^wXPBcbUly1-3r z*4$J(t|RDLGOU!Fddd^H$;$0AslrX(*v-T1Dt~CKxap3On=rsl$b_4$u_-s4b_x@tUrrhK<4=VMf++=Nz%u#Vu%rb$SnjJ)zz)iRjxQX)NCacG} zi5)9$y0*6U-FizcmvfUVERS^B$;#={#c~H_Rfs8sC+z?Un$JWF1&j(|3wBhr?l;CAL z$W&hg-bZ_-v_h`=HRGC__FQVj+<AT{5!L!e{+}2ITLjF=5EZ^V1i5?rst-13=>>mP6Q@k z)0v?8&E2|;{F}QYhP={QzPWp2c@g|fz7fJW7@fUwK%bb$@7t--758AK3;&QA2EK}mOlEKL=@sG!tL!kCHGBKe#(^+<=N|g(op_kc-fdsS zbq{wL-dx275A{{tL-5c)WQKvS;v$pT+dNFait9tx4!qh|bYb>p(`WD1#h`XvL;WT) zEUfmoTc1&X{dQq>{zmKlv|pI9t*rcX-uC5NZ{X7K7RnzQs4w5%DbCm!`0_0>nX#>b z>6dSDRNqQhIx=IA`SLC97A0x(%eSugK4RRZGq&42kkpgT*w*Ga+f_4m%rardZgvV; z!iW^Aj+XKZ%VjC~t@mUehkZ5O4dmdj^sS6CjOv0L0s_KR(ZGxhoj8e2g=b)_Z8pSxw$QLVaBF}_|@BHCs0S2vDswC z-ohKLttob*SlH6LEw$OVK%#nW?{?DerS~XS*N9eWp5&d@M@gpdwAOci>{}o|m((;` ze+%SP&857D@lBHZCVIYQ_BZKPX--bw!^lZ%Rqys*>27){TAZ`@mr3WR+eoy|*|(Ch zb&)JmOoU?B&O*&_jYkv8XyJ>}CjeUWmIcHk||FSvzcB)LR zxILoekC8bW<;-(7nP-@@W46YeovFk0+0>4ivk#CHVa{fA+?-vPkjEJ!jis);#D#8wbLi zoqOnWcH&`&IomzlWq62+4IXOFzDu05F)(K%lR4WwOy_JLvQ1yng*ltedd{vL*HFKM z3|;2zJ88c#XIoiaPU!r~_69Bu@2vcxfts`Rp`q&IqZpX8k;$BG4NT{394$)HE^{{S z7A0wO&UU@`5#uhMv)$%_q@Hxnwl>H4u9~xBmI-rqvs1_t=4{*u6A$GxXIni!XR~89 zXWvoV`arj(mdodCS6CjOvs>Iu_KR(pG-q2mUAmY#dqNlcoV~Ixc4zaB&gSe%p$l_1 zCB!+q*$LDU=4>|WIoq0ICyK_L9o3inoXtsVWX^t!{m#CNOq#RrF3~z?A1Y((oP7@& zbqcsAqU4X!IU8F(XH#Z#&c2&8>6}fj`Q`7m&DmDKziiIFmnu^$?u{t zy3E;(YUb?wAqRI=%A9>@oU<`7XCsq2n|$@0ZG%~JwhwI_2y=Gsq0iZghaKi@_i&ft z{Z(x6P;>U(;+&0vIUAYG+2&z7XZw(C`id^h*=*KxcI~)^`r$HknX@0D{lc7WWpz2B zGiQ4Pmxd2i{?I_p*>{g~HU{QwWHM)41JgMhM~jlQ%bbn7MM>J6vt93f#JEf6Y`1wJ zsVAMYt<7=1tLE&OWx|}@>=d$uIU6^^oK5-6*;bFw+3ct}`wsevHN3C3_5E{8Etk*P zuCP2lXScYS>=)Y*=j=PGistWZE2m2rGiOieVxO~D*2V5@-q9O1V)_TmQU9GiDRg1Z zri3_WH#>nk!ko=!J!e}}>_nkC`w(ig-`P>Uws$9KFUQ~6oU~T;?(CITzq60FIr~8} zY0iGAMC+V=gp93o_QPe=Dd0#%$seP0Hnx1urp)G?{Sax=Ih$Pb%YSQ|v#o%C*_{0d zRi;)v5>fKU$efLG<~f_pGtAjBTVu}7)M5H;YRAmk50evN&SrDmoL!fZ&)Fk}ywX|b z>_^Fq(K(xOFgj=BKv81rGG{ZYnX?~*96VSlbM|3z&c?u;jZEfj^3`*;4Q9>RKD2Ql z%-OkzK4&K$c9^r>!(E0)tJvV7=IndKIU56WHZqyB&BJug_95H!6LjyHu-!snH7?`t>$((HsOy_JIElScZb2jek zOTtQ)}z_*0Cs0S2v)QcYY-@_0C^To^o!V^9j_S3&!=$|&=WI?| zt9tkFN_V@#nz=7)4gIk;XFp!1^=r01NT15qmOfT(>9VEAD&3?{R7>>lxWn9#W&w{dH@%u36hZcZa$4-(OnIRzqt9l@S+bImwBS)O?u zo~kW<5!TYo`twn7_mi0W=} zz^fz4!{J5wbZr&oGb}w(sUmQaME?+r!0B90W+a@U4MxKACBsOd z3`O8%#NY&_MBqLl0%#Qh#J0`HS0jNeD&$NRqLFZxM9WC9vaL`>;Dy@HM?zH3_s*79 z{p(}lnRDw-k7MENm)2tezgG3m@qKsG5F`eEOgvL2kHNFGr7sLxdWurT;JFh0J53!0 zl%W`$iWodgDKR)a!~m^gfJjCGSvrjZE87ZfjDn~RqhM+b@GBVyeqQi#@I0CPcsN~K zMR|s$&$sjiN)?GSCHi-sIvOZRkvI!6I87;$xNnFAT15hpj0UoF8Vy#q71|gLQ5{CZ zl=A{!C1W9t!wY5dIGm%cqI{91FShh0N)?B5CHi-n8V5>J9L_@w&Q?ks?ib>KR&hWi zaUe^lI9S$`O^tB>OU!hbHxIm(RSBt+cxh~wVo_0#&RL}RGAZ?f*PncWxoOn(=tI4NUzY#Hbol;u;z|d;6YBeHhHCZ~f+RC;<8?BD&(CX?u__VooC&qT4 z^8C8p_?5KV$9>=W{7o|XxPObb^i2~>-=LK8F~5LMd^0NQeVk#Q~ATfh?WkU}amOjW|Sgw>aQcOB_BglgHtU+S1FTE&Z~k zUs0+!d{v@jMB*o!th`|?>5{HL|IG|M=5J?=!(kTvBwiVilLsWN*175Yn;p;Ma z9KNY7y@S`%Z(I5urHaFMCHnWC8V5>J9KMGbd_yU5(2J4m_aj=x0g=RkES=(DWm}<* zI7D@~IN()F9KJ7;$Kg_K73B{t{gI_VR;oDsM52G6sd1nr#o?!j!4H%Yhlhtapj8|Y zNgT-1DGpY)721eHRCkL5UbV#GXEJ#lexWVBhR@PpS^8_GioSlL!+BMwpBEe?3q5{KW(RFP3q$o*oSVh*sKlKN3 zcvOf3TEzjeZSxf?k|K)=d5#JZNu46mLQ+r+um*_vh;xK8wk&+aLoe+c7N{PdxLmbd54v1uhg)EB0 z^z}w7+X_`2;(B9LcUxz}tC95;Ut`)?CXd4vw52EaE!}A8f>Om{QKJ9Asd1nr#bF6C z*r1d+92Me#R&hWiaUe^lI9Sr4;-K}$E!rx|T`j$$QbpiO z68#5FJu^^-B5-BIV6##p@R$$*w2A;CIWv$&5tvTYR<;$|I5R|bI5SkgFVTsZ58F7mR`rwo>Il(x)S{(rpAGi6opE3^@ZsO}aAylRQV-ZFU{_R*FeHnjBmmfk?A;&4NW{zIn5fsz!5 z8zBZ;l@f=?g*c#991uwy$kHheR<;$|h(lC&ivwP@#9?2VJPtR}mLBV|^k$acT&d!) zpG5zmQ{zBMio-1sgBvR)4v!CUK&v<)k~om1Qyi>pE3^@ZsO}aAylRQV{xW$SZlx_f zAzTYqstCl$2StgIeUA0w|hgy0!OYg2!aX3t(f8^9SP?F+s55(XuN{PcUAr5F2 z2SgGFvUG}rm2HJK;tEV{%SE=G~KZ*V$rpAGi6o>mG z2KQ1*9F{{I&?*jyBo1Wh6bCEY3T?z8s=LJjuUg{p0GT`v57JgqKG@PDEPaSl#o?h6 z{YOrX10^XA4?_$dsFXMy8{&XgaX=(-AWNq>SlL!+BMwpBEe?3q5{HM&a6QXC$G7#yjTI6N`L0j=VINa8@2PI0iZtWit_PF)%Lzb|Iya=N!O{!t+qb_F?g&}+Ww@_cC>0cBDrEi7PWo) zbt)^{3RTR1f8g3o4 zg3Nb4V*SMWhM}mg-z}qi$N0yMV>>CfSK`06!@Xm)K6xk1nz#gH& z1)1-S_(yfe_|y89_@6D4;{PIvX8d0)O;NtY(sM06&(fDF?frgw{3)3DzYIAzM=9|y zWBf4?e`FGW@{Pnlsk%e_+p8x2)9bC{Zv~m}jrd1($N1CwB>wYry5DE+SUdlmFO%Z` z3JJx(uk+83blm9tbAdEPd7-5jS^7##UuEg5mG=H%y>ObAikCPGoz4caJ3|}$_*sbJ z>4l4tgO@9%7Y4BxFwhIgZJT$iR=vrml3t*a;#nxEdZ-e%^joU-vrv20^uqLd>t3*e z%y;#|nexaN)}wlD?<{GxTt0VTavoYxjCXIIhiLz*-V1$a?oo*6q1VWyet4Zk^Ei0D zG`eHQ(l=WACQIL}wD%v=j{^#(2i}4lyjCeaaD40m4D)S)&4%I_OCWKx27uWyLDmyj{3r1H}+oT z*Ap7=LzMin-*Ys^!W+kU5!bGo63y&SRn0HVFXNYc>Q7ba-SPXP!N*F2FYaBXNnWoy zzkJJ`Fuz+F(#NpyVt)CfdQ;fKyuI!uv}23f(cevuTzmO=W$a%?oBQa^tJ>as_40`l zy{k%PZxdVIpD0{SfA)7*vZVKzEuXP-<#6)eR1E$?Rs7BjCm&Y1pBem3t00R-H?{hE z(^jwBy6eK~<<%SJp0LiWy*=>dT1pmHhc~KSe}T%ctzG(iO0TA{t)^U8!V;n2b!6%F zl<2@Y_PUb8_sdW9)dvtIe~dghhH_!Y^sQ><>9rKUCA}Z5w~vb1dO(P3t-T)Fy}Zc$ z$+7i|>$h#$T~{wGn*AGU*F8i2tE<$lho;#YPmbY>muBkl5LZ*1l;lP0<}qd4@0pB2 z+w>>LcG~-Xdg$vWs$36JS<|g#JwA0)>H0UK0aqMj$SVyQByL8&n=9E<1@9-h&-s@w z>d}G?i#u)Gq9200`Qrr&_Xp)r@Ka~rHT#`{Zv%#Icyi1_jL9AFVVyoXb_Kn_^dMDX zuUESRb@{}_`Jh z@P;SHau5BWuuB-ToL{1^jN|a+7@Pj&*qS7?3jT*=SXeXiR<$+xTh%_M{lb%D zR@OaKbN`-7w)F3X6Pp(|_wLOGuUET|Hq-??Ipz)AG`vLlLjyMzy=TzCcj-M;MTuc) zlkT{aOr9LG25#ydPLWH+!jd_vd;hdo7%NxSfasl~A2Lge3yWKKFBTU2_tW0T9;Rf7 zySgDzsnqwE=F(MrUaHz$?|sC$OP?Hbn;-ntlRi0SZH`Y}+3|4gs<_M;AIW-{D$WNG zwS*_f>`*<@_Mr%#9J8YQ$uV}+lVfKKG=?A6wr+W})N=WgW3I3~{^VHZN#$m;Uu;8k z^Bh$X#z1(hnw8U~i+OTvLKpj!V=L=ocQ)_n6E$M`FOs8ra%@XD5w(OaJUM0~d&{wU zGJ5@Sc_&aucyf$Q7-d&}t6Ed+FkIL*p~R@JD6x8{+O71$G~TIpk!1Q#HQjV??^N5J z_oT_*(+OT;?h|4V-l_I0$$b+&zj?1Oj=7coC%<_)WhJcXtfP0G>U8vRnKZaQBhkt_ zpOmq}lazHnmFQE}`E;V6g>^o!{5q$60a5bDSk}RuvksnC9OJBmkCnz*2k$D)7}oi$ z%qi)?K7*q*HOMY*HC`Vyk#j}g{EIXml+ zdj{5t*&3{qsRMR2wPRT4b8;fE4x8gxr!FIBoe@J`=`5`CWqC2mIt<-W*1-YY%#Gi- z(@8A6LAH%`I3K_|UqcQ)p%m6RDY6a*SO=M~4*6=<;h2RV{0PQ@z&g2y&N_*Q9azUb z+&KKYiVYr$bxw|~g8|k-Cahx~rmW**w&^Rnz&dQ!tW!I#vHleqy0FeSv|nHyE33;y z2I)b#S*RNt>+Wdha8~UCKIc^FUHh z$~xBO$O#oh#4Hn@l5chjSpw_eMtDk|@?jmT$61FR#X2v6b-t=?-Meq8<#N_>h2?S9 zX>l{zFSa4F&bcG3W94+|VpwNF7dz{$tc%^*yrZ85>zr4!&ZN)<)}e%jnsu6;KplZ~ z*sNK{nqnskvCd1W&7P8v>b1R>NxN75{@8yr>u}0i)jQv+)U$6p&b>%1^kie5Z^1LVkCb2MjvpgR{@Cwav0A=ySpWwD7v&y0 z7bPAhT(r2j=xabM1|@4i?%~4lS1LAmsPE!DCvp)6zKerQxX3(Azl-Bzw&^Rnz(s7< zTvR)*vHo)zx^U62wO`;OD=VKgw=8b)H6Rv)k~JW2;O60Pls`03-@-X1auEi;g@a7E z$Qqb_3kOGwl5~WNmKK&+16oSffN-}cNt@roalQ8u<1XbQw|O9`C*>k*b7YE&i(-}u zT-59ovIH)|jle~e4;NWI&PD7fE_#I~#o;fsU6h_$F6SawSRUu17B`dqVjChCU7#wO zYd}^`moA2jCUmiL(aO5moy|M?xp2{ia#U+TyM{BAuL0p}BXog_C?S3er`ZYA5x9s= zxaf+k0a;V*M4@ltTtscgMNz%B_eyCa7wNk+wg&X2Yz;`4Qf&?B&e zbG`8|$ieTFa=r0Xj#$6%1OwL_k;(N&@{L??Osej1y|KM&t~XAvx4zzJ1)1-S>y1&} z@p>bzPp&tn*L(jelj8rM63zJkU7Di&FH8Sn>3>`LKT3OlnjU`&CjS469Q;iw@qb>7 zKL+BDOyW{#y>UW$0}lW!#cN!1U zJI0^ZC-L8L?kSp|pJMA0SCmQdzp6xb4dxKd{U_ME#Fb?nw=S_;qED~ETqV)Zat-F{ z$}gtB2BPGTvDaWQ$Mp(doxsy-b;7T~;A5rnYcP0MX~wKhTutV5b%JVi^U7T>(>0h& zwFoeFbpnU8MF_v&1iv%G$#%a9?q`PS%NGB>wT5fT9re{7h>|}>zU+&#ZLMMY{U+qj z*BUz9ZxXXL)*3Q(_}Smoj#+EiT~36x1~$iCgQ?5NufdEM@=9m926HWWF}l{k&>dZC zzyUoEjNcuu!Eip{8q9T&gDWZJ8qD)KZR$h3y8QqH*IsY4d>~SxVAs5_0;{7FZzw#dvaan3F{74ZvLaR?cNh_?55#f${!l5 z>oI52SikoK1J`4a$-09zHoYE$(?v--vhFbE-V@x_gVIWy*JE7o{lyqe*B#vEL8YE_ z-ND)%f3sKX4l&Dwb%$mLktM7<;6_+?pnQHjTRpz+z>ZpX(3>;X5BJoz9tF45a{0Q0 zD=d$%JG8i&>=)Y**BzEsMRVQ3%IVU@tUFBTVqbSySr@yrc}J(;;MKh+lR_8P9Vj7Q zk7;%Sb%b>XHsKY!_r#iFCkOj>o({?>ZuPL;3hrP3Php&WnhrdeZ z>kj*iX%1vq0A}wP>pV%J@hhh&&}@B!aX>gQH*mBerE>f9^B6i z+mm~4B6rkRH${~EF~U74XXhSr&%iw~TZ4NtbwH4&b`1C2NKORqVRIb!)Mez{Gh)aq zorQaDCND<0hoL*lJvgA3T;O*H?%{j@_uK+G*s2unIV*Ax2Dk^Aa1Z%v?%|k)d;AE- zfxtbvht55ThaI@bJ={3lU&RIw#XT>K+=Bt`K_=W|9;V#mW47rly1+eb*4$G&uCab| z8CJ?Yw^W|MJyvd)Ns;?dys?{xw^IJlSaHwUk$W(}J;;Q6tg$Kg;B--vcHth}ElScR z_qg8si!qpTkJ~(`)RS_LwK+0F#XT|01ny~e5Lp8E;6~sc%7=Tb9_Jo*thi@CZR`Ce zmRc_79#>c%=bjcfll@{FCUK9I)1`~yo(Wy-+_SPSc4zaB&bVh%=mPgpLgb!iCs0S= z9yV+4v8LEbqrp8_?7xwTB{O-U#oDblhyCMg-Q405*6S)Ti+=EQGhkP~n zaLmFzegxw{;GWz==bpsF4&37&ZX6z}VuOd`o)<;#!2tIl6Yen&Q||FG+w>J(;2t(> z?x`KuSiiFjE9IWMDNo=YE4Ry}2={nnHx2Ku{GqYpo)<^%!2tIl6YjCbrrd+mMM>I) zdvI4@AXVDr9@l$+F$PoaahnH~dQ$GOHb-WtxF=?rz&*_lB1_;N+z8x5`EZZbl{zFScP4_gFbyx)|=6(8bO@E9+u+Ht*<+dnSc0a1SL! z?rC-cbp-BVv*sRaik&nX+!NK8Gxu=%YH-ia>*wa4YS+0AlS$ljxP-Vz%S&^w(Q>xF zdpY-4{lA{pjW(`h@%WzFVI2G1E77OybMHhS*+=gYOY|SFAFFmfBNuyre$CvPaCmlj z4Ez4dqSMg>5G8-4xAD#|&iiB7m>rYWEUXESVbdr_pf%w!Y?@PP9Fu5BrNQCg;+1T1 zb2$O0HQ~YR`zk{UPEsVBuWYjZ@L3e#ei37FRGFtP+p!;OGx zl+R>m^*E-nqcF`L34f@z^;$_wEtg}OD=d#=T8o>>ez6S^(|9C285;+Dm1kbul`h>3 zs!izTciKo>SvR}Gd1t4Og>Me$N53U_BzytYC?S4O)J8v}eWfkD^5hmejQ*=zsEd!2 z21we%`eCr}0XuFYZ2*XHoFT6goc zIee@%4xM;cX%fV&-u?4fnN!51n)&79HeIH*xz>08;BW?vj+pqJ85}WjKQnAk#C(F> zQC}T{DEVXg?Ruy#MNE`!h&laUEOO_F+2LNSn5}`BnL5y3Qya$V)x~PnyMG=hCjw%! zIc{yPE+b!?8!_aS&ayVQEH6eOkfA#YfjFSAf#Y|FwK>iQtj#?MIe3&(*5+OcWgKRR zg@Ls>WCDTYtJmf@W&tZdf^i@~VD6zqVB%o{fo=CmxY0KI%EQX*6?(ljs_GZ=?DOhxi1TMi;}dtPUm{> zJH}%QfNt{uQ%?$j*5(LL6#&L869BN;S!4+Sh#LU_DIWl|dK>`Rv0A5lqPF#VWlJrW z1E4D`j{{(fo5_B$4G{pB^&=>ZjRPG1teh@g4E#;#Vn?Hub+J2}cXYN+Hz{-hjVK|m z(=|JRIszK8S)-9P#ZDlNb-JkTx=yE0dm0=CPGyaC zx_CeO(_|6@9WRkFP`n?#lyMvb4HA9IK*K~o3j;kv`E{;25mEBTSO&tJGZ3CueB%s+ zkCnz52=6M*7zR2)=9Gb`W`6nNgDw*T{q4Rj*C%l}BN}HQ{LT!{K)9b7wkHFfBzM$T zCnHM!7`Z-)a&`tH_Y4davo#nfQwJPrYR53p)8#~9AU4M_P+dmOKqH2{(pebjnet+k zff%}@41@zkiLDC*aXx^7o`W15rxXTyITNklkB$KbLM9AEzM6qJW?>*df^i@)Q0}2K zP~u?+267KK4o^|B!9y|7EAY_oN5=pIArl5N4^sy6G28SNU0@(KYX+(v*I0j+3>5=) zy&wI#$`iQ9%Iz{Ka(&VpyJ>i;@`uKXdoGCFg8}YACfs9TToUAPB#i;}d- zJ+AluVhpC-<2DZ}^`zWmZH~-PaZk)LfqR-AM3%rkxDmLA^5Gt<$GL|cEADx=w)IYZ zOD&gkk1H&Xb5Dz#$$qg7leovq>C(k;&x9^^?pawEyR&&mXWTO>bb)&)A#zW%6R0C_ z51TdjSX1nz(cqq_?#ey?qWjS~eYJ4U^JEhDyg;Irdrp^e9QT}&=u_@_exjd+dtRvg zI=`HaDEVV7_h8Ps2Tv=eaqhv#O5@yvca>%g_nawn$~{ywzx=a1Tqf?h`~6$E2Zu9? zaqhwI%;4OE`Ta?d$(M}74oM9Ci`+=FsF{;j%%#HM23}e&&!l2aF3PSWm1HDys?{x=PQ3`thncuk$W(}J;;Q6tg$Kg;Iuv` zqO=S5;I6*Zp|r_8uJ`_845r-UHV-QGq}*d|j?7STPs}obdzu|YmcTu@5x9r);U25U zxrZGq?m1W6Md_*Ka_(`3<#Fz5aWmO3wqX+YSUFv~819+S#m+q|>tc5{@92zsCWS6= z4<$tIX?6m21nyz8<{oQ`oirNU6V;b9_i*}Z;hvYvB<^{oL@W1PAmcdhxiHbE+;dT) zpM`raR(_pdUV|w4V=VVz&bbFqE2eSo!N*GD+=F+OW(@bdO6HV%sAhioss~>t?s@G4 zTDS*?Gm3HU!SBrA+=Kg>VS94VYvqpm>UD^cKSsC*jdqxa-rL%C)>*d8L_b_xvxd#V|5?dGU;d}u1ya_pYg;KcZRgrrz zz&*%>d&pOF563Lr<3}(K1n$W_bnZz!?7%(l;l|;cRc!E3-1F+lJs98~WWqh>Vah!| zW}CjE3*5tI%{{f_8tZS6VWr&j7Uc=tW94?46yY9k?55#cl|M9A+;ef{9t>~~GT|O; zY|1@2tdTpXIDNHn&)Z}Y_qwlex{REAMhtnSvvALcJ$go^y3U0G?m;HpL%y1OIA-AJ(;2t(>?x`KuSpTpLE9IU`lqYbHmD^=fgnPWPn}#1({?J%) z&+8)hV1Rp&3HMlIQ|`fOefCOe7w*AbeNRkjlY3n6{lyqexyNlDRO(5&$J!j3q2ivH zWdip!JBTcSdvGIg59Px>R*!QJJ67ED5p5Txr3Dgm|hs~OMtSNTVXmC$dU(Vda>8pi%J|UC1 z=d%*6-18|J$8pc66Mf1(pGowyaL*T%U+0%EB1--k%RQKL?!nWFX`FlTvC=sA;9aE| z!#$sqIprRznO{EjPM3*$?)Tsp?!n=VVw`*MJ2N=<;C^PI8%^3~kKF$?$j5sU+YdvXt*dlC;jaF2Vqarg}t z8$1;EydiQA2Dk^AaF2PIa*vPMrmyG%_pn)WPwlwI`d4LGDffI+c>?!Xxm_kjxW^m2 zY4|PW4~-S~yfJbQ2Dk^AaE~=M zIWj}VJu%A!?rC-qSpxUqM&KUGhkL9Z=N@*fxaVuyE=o@=mvfIRERS^B z$I9u_#c zN7yfwQ73~RB1-<)dU*JPSN-TeHYXGw{ig&k)9IsnZvT7QD+La6%`d-!hpPO!{pAm7 zd&4>tp@3`XR{9P8?Q+en;S1$k*R7lUeexaS_sKVe&y)X1m8lg!MwI+9@@XoR>&Abb zeELK1WX@;r4iCY{Y>nAFQ-_JPsU0(W|3FTJ*_%zDy_*lg*Jb1n!H*d7N@sZp{wMNc zboOQ(jLzOTpwHCdcd}~H_Lw@On#a_CjvRbPDUYeYiRpsR+v!6`Qt_BNGMT-}Ck{E- z9#gl$tl8U#HV%Z@JNM9M@5IAo_HKJj-96l8_zM*qJk(?AZ^lFaIynX&Q%5GVw|SU8 zrtU+w=_|T0d$Z}Y_v&I$JFcPrQyCUkk9?hcb^a*&FSTEov8}B9bl&zTx;JoX_$%cP z4b-FPZ;3ND1|CI6CNs7*FntsqNA=|Sx+6N>449&)BZ8JU(N$ zxS8x1+Yo1L`!bb}fdl+WBrB&&7c*l|=whF-SJuVuY~Io7m#Op^`lQf>8JiN~W9ZFJ zppGzOv&oFTg)dWCQ|v^suqF92Ra94Brkbn2*||#dtwdXr$f$QvRqu%d%om8w=A}(2PvsoH~b@F@EfIz ztBT%Rb&Ov6=%PfcA2^8QJ0xULA!n+Po!9oylGy3e>#W&w{dH@%u36hZS7h-0rPYMg z%CO0D=->R@c^A%I>AL!^`%T@eRlRfA zbI!ie731(Hx#Ds7i?)jLua^GJ(*IPdIQ(6r|G24fpd`iNzYv2zDQg|4H;8KQ#`Nq&Uni5r_ZQ zAH?D9Ar5F22SgGFvUG}rm2HJK;t zN>UuIgcvL-B@XWjaX_m$Ad(S5mQEwW%Cc}9A3VE{%(UI{MiIyY7%CFXnw?rG_DEbS>(G_EVrKh~o04i#k4c&9dq#=9g#G$>Ee*b6b(Ln+aCPlyIu zMFX*I^L46dkVS>OM};UF@0DnYhLvrFDjM(8ejbgep6|V1+Ue&B{94uffbZKpPwXv| zkBfb@Rg~AW^!k?GK&c{eLy7(qr=BM$Ns+h_Vz5;yk$7*21X@J`k(?*UqDV~V2`k$Q zZJZ~fy4!gIuSU)j&Q<%$o`twn7_mi0W=}z^j%x>@SnY;a1uz%3E7{8%qyRsyG}d(SP#PI8c(} za9hOSmP(1k`$HViDh`Mw4rJ*R2P@kOZNwp}yTt*oTHS=4;y{*8aj>$j&_*1hx?3FZ zswEEhl*!|8Z*A$Vjg}s6>3x+d4)>GjKW%CpC`oa+KVon%rNrSwAr5F22SgGFvUG}r zm2HJK;tkP6^ElF`sLI(P?F;C z7{uU6rNrSQAr5F22SgGFvUG}rm2HJK;ttCRMA+L=npI!lYVzmo}zIqV(?g{MB}3&8fX;_L_*nQQ8cFi?y|D2P(>sD?uzQJ zzq{~jgtMI^o+y)#izjPK??tlosg^!XsUmTlM1MGSTu_oCQ6dIUQc5H~79xRGkw7Hl zf-IfJg_UiEHpWF%cN-UYm5ht@_vb(+kHhiW(z`V*eY&O3P^vhbDA7NDY8)s@aX1Mv z7%C+WmxMT=RU8mW9LUls4pz1m+K59`cZ&mFwZ!3MnLG~9(w1JZVCi!#Jw>VF@LY-h z2~*=hNs7a%h`}?J5{Hk6IG|M=5J?=!(kTvBwiVilLsWN*175Yn;dwH798T9(QJ!Jx z^DTXWQpMp+iT=~4#(|O)hqDla)07g2PlPz2RU8mW9LUls4pz1m+K59`cZ&mFwZ!3t zGI<=%(UzV{we-c7zC@|waIQrE8B^mxNs7aHh{4%PiNhyD9MCEbh$IeV=@bVm+X`*O zA*#E@0k2x(@KTvP4(DsDC|_>rD=fW0sp4>%ZAYuNBa+nzvZ(FTS0AiwD^zWds}E5fRv&y#>V&y<&xvc4XPi^7 zQQ}py_ORpJg5J9}w6&Pm$)x)a-Y607KX|(?n%rC0PJXKYSF(4@zCp(7{)6MLQr~}2 zqThNQJ-sEl{5%sfX_6CZdU;c_-gt{;vK1*N@ZsDDxyQz|EFCV|t z+!Oj&(dIt-;H9?rUcG#xMDMCn*_{Z>pFU#be#&27wQ^?c-H~+=QmfxVvHIWlHSV_& z%T2?#BTD`lxxE5q^X^FV^jeC>Qu+qirndUX0J-z~E5^S8*79FnrEWdcJ@IUf`zvB; zrVh6{G__$kQBw5=*f-0GaDN4xHQT~SiFLN27ntalFtBe)N*&^yOD#}E9LIU&*-ER?ytbW-I2)T{tEKdcSqWx zrTZ)VKqCU-{)*f~zrTVVf``fd6>V>Tbq_ZV-$O32J_&((i4b&Zx zpQC~PrdJHy5s6IhudoKDcSPc7QIdwS5?}Q{=1s4-Ta={DJ0e~0eZ;s+@2_y12aD0FM+Fn6XX2y8q!o##%I5*b=h+4w^6?QcFyXq-|`zx#{zrTVVb$`VP zDr5LAZ5O4dmg`YgvMVf)-(Qh=Qn{Jz7uyise7Xt?V<6mLVdZq`V(zb)(8Yd##mc(a zoy|M?WyRdy{b$J0OZU~S5O#77x2E80BXr^Z3QCA~L^h8M>InB&uvy;`X-%=iP3*vJ z$^8|av{v;__DXlVf%DjEW0LpFc3uz1OfO*T#07d$4#+-yP7g^ii2~XnjH=@R&|db9%qi+zk}(M=FMT z4ot?1$DW#eL+ay+{*vofoHow~f;xfMXOv%O&d(xB{uukb3+BjP)bAcu>_yE*i7%CA z-IdXNGSQ5A-sMv=r+h{=^UF_rNWy2y4rnZ7Ra(9C}%U{7=%+`RrOdU9@sSQImg}YD7i2!$Oj)S|pj2!Mp40)xqz}*+* zMes9$J4SJUI}3)x9S#&Fwk~kTDFC?pGIH=SrNG@6BHUpB?vM%Gk*|h34qqO9@q-x$ z0^H>uI@~25c7QwgaO3bRDmHj1xcg#+I}E@bGJ!kuFoioGvrS*o1-N6ghP&EvjrA|e z&;{)X(lAyg!X57F z;TWY&xO2Vt5#ug}JGXftsV9XyYjXsnikf1U2{+F+JB2I(?rXbQcUDf9E(Y!x$0q)qW;m(?3CknycN2$%=E~?k|J|?YL@i*HbJZ zaO2)t-PYM)JH98xy|atl4=dTz?Qaru?-6(GA^APYob9eDcDaH6Cv3+#YgO+OuakRS z?x<2uFuwV^OyZkwO6;^|>rrcV-T%8PcfKgUB~4L&+tTk?`dv%Er<60Q?xg*=3S3&f zxVk6wbo~3IHugEtZl$H*VqwSO_mP8dC|%sK=zWDlmal#25gVzNWI}G+ytTR$ho^l*!mdfGv0@2e`Iwdz|JyJ{%4SAFTdy3|WYt^vobAoE?1+)9bAxZv~m}iu@Dhk&pbSuAZ3G9Fm-SRx7Sc z&2ta!Po8z0pF2%+gH{|A`@hSi*#D12_-%WA{jSw1dhQ6#J7?Q(+keP7?zioKC;C}_ z+y0;O3moS*NtFDt-)ZXi{JH|>{I@M0Rlj8Yw=KR@8vkwkztTKU6X$M~ddv^pf3lCh zF1v&6Qhk0)+i!SkVvMb06CB0~fE;U#j&FT%6Ag9e&^rXkkxZ(ptau!1`Bi z-Ri)$^`~=pJ#AU-y!Mveulch6J#`km+m1wE72&5ao8x{8*Jb2Cg+~l|rL+7LUZto6Ka-!rjQ7!>!Z=Wr z*t+}_=8VBl;WgwM{FnaXr|`Epwfb|U82BlSOnwTJul^~_(auj{KlX7T{1nbT^q<0s zhaG+jyN4Tx^U*{76#h0I`gINr{1iqeKZVW1^rx_o*`}}P!cSo~>z~54;~MKb%FyMf z@LKH`ehOPzU4AF=Q`j50X}C`LLl@|$@ONmSU+2KUPhn*8Q`j1q{uIVhJrkrfjFpK$ zg>hF83Mp;=6n4G$5#uiXDeN{6B=w{}g{{r;XJqwLIA)pfQ@GhFWC=foaU=W`rhI-1 zTRr|$m>u;~`0F|W4p(ctC_S}Y{!`c$mdAezx44IgrD*@RgA;kWRC*>B-rhTp>L#WneF;lrdmqWN2xlUBl_JI-BOc3o@H z32D7N7Y|)QBJj|sD*v$vF&R%V7w2 zD#mdb!jVcdhI)39Ii(&7onJoXVV7xH{~~1{yR46U8Ql1?K3-;q>D2S@Te4r0JBt1$ zM9Ci`oPu(8P9gUUoD#D&I3-gDWN2!~aLPtG5jcg-ahy_@k#ow3A+K~6PT4FkMmdEM zI?5?HP?XrZa0*8+<`g>$bz1Oa5(fgOTynCM{&xx;gnsqU6h_$F6R_iSRUt; z7B`dqVjCi-d}oAHteh@g45v)!V&{~Vb+J2}cl4!j%6Dr{nH0LfDU=X7rP&G85jcg- znp3PPcA^lce2>~}$v&#r_P#G|dOybB!~GZ!$~fgJfm0OR#+v;Jfm1G&%sJ)P(*0fk zlQm;bTB~|L@Je^n%?5GJ>?$&eQ?4e_Tr=BU8a=aY=`}39rc!QHo3>^~k*t~RfgD^_ zDQjjwQqMcK3Tx|Z&xw0Fnpv8PC4zc+GlZKcHiM=|yoh&?iiJ^4mrpH$r; z_U%;@`|0)8vA2TE_eSiax^wJle-eA=bKRDtiFm6_iv0~FTKW8XGLGZ(>nHkI_e9q=LKCjEj`FzBX zS2_!y-%MVN@;M`Pl+STMuSLLbU7TFMrLRk5>zCT@m*z-@&u@Vo?4uMu|1qaLUq{3M zpCc1KCtuCyb`9X9f#P#LWKyjoVt~() z37=a7Q$EMhq9pCY=eS#xq)k3|z4sC0F6DE#c_67L<#TIuWZR0*W0nbg-s}{z1U|=& zz~__?pIbf7=j;WmsLe`9ns3^(#7!k zgf4bIUs)Hsvw25nZ;+i7y1?g@5c#~>3DgnzoXwigttob*5TD2Ep;4Xi#gTqb&A*w? zIcYUGQ6X@f%GN<%G5!pjoE59cCsUutH184p}f{Z)J9fkCch>|}>76DPt z4jJU00WxB?24rOFFyA+|V<6*paw0$mo8us(E+dDG5kp?-ERb=qycmTH2I44W;6PDg z>jD`ZhCs%hk%QYP1u}jXAp--DflMHSd^Kd)p(V)h0}TfPWaJ(?WF#JTfDHF=JWC9u1z!WlYRBsnj+66LjwT$?mM?uC9wf-}_leUY}Q_JO$;R?&+kkR61 zvR`aNgp41liY8=OIbFIK$e7T@4jC)!Vs|$0=wE8Y^nWZz{bJ>$&;`h#ga{eUPN0qe z8En>&VNJ0Ug&^Z6)Mkr-QN6bJQ)!d?cHa@!0I!^_0qSzR-M4#Awgz}hF~T0Y&*=!s zd=2o`(!E3flQlrjS*vE*IJW86(9F~(sMfiVu04?oraV^sIWVvO!AaW563 zlfk_aC4X$aM}F-QTV#nb>lXLW4k|}> z00HIffI#jU03l{;079k?b9GZY1`zHkCjua_ISvr&GIBr|G31rb0tok&7o&i{cpC)- z94Ja`T>yb&2tarMa&UL00K%^#AYcFxkO?4=uLcA=UIYk!^x!}Mgxo_1gv7%RfZ!f( z96nIR1`h=Yzm9-_0YE?|fM6b`fZ$`c=_|Sb2yE7XP&=-%em@zy0K$W`UjPIvtIO;G zAb0~e4Iixhp@9N~-$X#b03aX}K(Gd;fPkZV-JH@cfPlM2N!kPi*Lxo^?ovQ-n+KA5 zQb4da$H}z3q1g%45deYB8W5~0cA{tiLR43P zP(9akOyGlWNv6+ipA+~%H{&+05&lE-HhgfEF?{fF>5ggg0jI16A8;?zvuq9G2${qO z50_}YR`O68N7o>V@?nX7mTM)CRDPX19)&3RWAs`Hw#XCy&@%2+YZHF01V<{(80I)q z=9D=obbk4LyIdyb*#D6u%;AqH<6gE};nzy=GBa#XN_n*0QS^^Ol>9M5DJW;B6mri% zDKT4vQZjV_hNgB5r947T1WI9Z9HrD{2i;}cSDX#ZEV%(*a;x-Q?^`w+yZH_a1MJX}M z1WIXk3RwcB;6|Vn%7;>{9;Xy`6s4TNwUWnbyC^-iTuv#juslvFEp8_J#WqArdHTq; z5-X=m7egr%y4WdYWnJvf<{h2ATV_(|0;Nzwq?BeSP)DE?Hfu_;rr3!>loH=96V;>d zmiaedE8(P-yjv!{pXL~u#3{#0H1DT*qBKSMBuk%c=~I;QDY9wzGEpS=(>xV9SXRpY zG=Jb|^?R8xa6b()xu1r7BlpuJRd=|broC$Jrm*dvqJlW!#U zN!1-<-(EGbpI&brdn?F%Z^S;TJI9{(x5WM#GAZ^aNi<`BvNT2cOiQ0->9dvgG!0LS zJw+1x=O70sDkb)RjIqZ+?2$?A$u|=Fr0Nc_Z?BrzPp`L*y%l7>H)0>vonue?TVj8T zOp5)f63y5@Pnx1U&C=5?Jws{l&eLO0k;MM_$iZ`!68k^J*kd5}$RzgU8;N~Vb%)ru zS554v*IUQl3Nqgtv5)G`v8Vklv44R~iv3v<&Dg(CnxZ`0(sL|*k<#8>rpKNliT#U_ zgEN&9`#;CnV<7g(B=+PRiG5OahuF7QP3))FTgToCGT$4qkLu2`r~OIn{aqi=wl#s5 z$fVexC!yFU@A`PDG)4I`OV79T<(9reY45Jq13%YA2z%GWFW4Y%ztl!}*8~OA0~a6% z=PIQK{t|lt13iG;w)y7OyC%q|l76j{;uH5t)qhn9Tly_k`xE!=Rnr60>#cjh3Nqi- z1HX|+e(@)&*YH0rzl@3k@18>sizEBGw6rGt;OKB`$?KFwKdN4jDEVXT zYv(ZMD>yh`t=ISp4sKT(+zSp}30R+B9N4^*oe@J`=`3qHZ;}^2V7K0<@QvVh{bq%s??d%^7q8OZ{u;h|PM%sCHaO(wk+dR*cTm3sbcHS*^S8Kk3cH zZ&#kMdSvBxSz2KA$Q!$9_zvX{jn(Rr9x1Nww8g;c5i(glvc{&XM>t)Sq+#4ld}1GW z^`2j)&DA5<#}S*Z9=XkfN zXk}gO&gLEcUm7v}|B$186U?O0h1DZUh^t4zseX6eb;Uz_=jB|hd@a2ZXbElgnqG>`nMz-7 z*tTVN-Z`~9)!b0Yo+1C$m7i}g#B2?w%G3dGn%bnK>KhCnkQ0Ha*mR~^zxVwX*Y|Fs z%9k{n>oOL1>fIEt?96_}F^0U-kU>J{fc5>G(;5}LpX5I0U%IG|pl?`QzirD=dabvA z2wma+sJ!qa$e4)eAwY2HDGCH5o7X& z2hKIc!p_4_AP4VKy0~-E`v;Tw{yN#{4dGHP?OY6y2~&|zC284O1BwG5rt;GO4g{vk zJ#?l@JWQBs6D#nUgCNNgB!^jdC%Z`>K z<(zjNGnm!mjKz*(EPE@`$IWd|EtfNvD=d#QR*Rd-ez6Uav3M&|GByHdSy^4W8P1x} z&F{34wz6(^hx5)(-;A_5oCaIM7dVR&7B(Myv|@Z*GTK+#!Yfa1p_Amlx`q12#iRj} zws1?;!sbvTih(5AtVz;3%TARd$@uQ4s7~JfG|(~1`9a4jEO~)s%948jgR$g`GL}40 zdCV&tgfTf^G~NmIF4>(iKO>Vy?H45iW8On2Q!Px+ zoiCrhEyjGGG3MvA!#KwLe4ZRmwX*j^2hQ^ z^fJ*DC{fN1l;oZPC}Xw;P-g1Dc1`UVp!~9&2tdi^IH0V{$boXikXJejP<}&R6eR=J zfRc?7p!9vHz9`uq0ZQ|%J5VzIM}gAI$JPZXIk5ng-$4#Os}!L8-w2c#07_&6l;o>{ zk^>*0^wR(i1fa}4bf8Q;>;RPR;V#4Ps@UM6fbyRaC@}z($OI_O!xSj}h-mtXt^!K7 z9Vox4tzu9+ucPT(XiD@cP}<+0(aF34lxTCH{GN0HD6N_e9^s z<%Di_pj=ruyTf^BXFxeAd;zy8Ap&JR+E>~_fO0|$9Vq|REfi38ZD9?R&7npV15mPA z1En>^j>QI0Ms*F82L_((1)e-Ty-L) zM9Ckc_vK^Duj=BC!{B^afy9wYli=ZeSa1A^%qbpH==}0=tT$GlcKsKwH{xDKfsTiG znHjbx9{xh^DEhxdl>D*$_6!eEw&7v=%~uPatv8~r)*H#4X}JdgD&ndgHI;MesAZ%E|~G z1vnfiN^B{>wY|fLBblqLzeNr%RmxS?|APtG-oGUu6wfT)7)};uY85D}R7Dt0SM)+r9x%0R zG~C~jj)5z#$OPW3;pr7u8c>v^Bk(rnTd=rWl%&louCDjKV?3tt<~9#7^`!7-ZI0km z!CTBS0p6OOMV0_>xDnuu@_{$2$Kj0~1#k9lqu*#-U%;`{ayh)Y!tyx0wYZt=7uyiw zZCQ(D%`2`}PM0nQ-2NYP=K*d>QMBRf+}*vqq-FQAi(o)N-~fw?m=FV~D2fRKh&f-Db_aLpe?b%)pQT+a}$0KdFXw25D?AZ)T${}cSe!z@`txMFVq8o&HbBH@=m zi8S!byy`sA@XH@09ED&0nDA%8FaM|VdaC>tQu3pXUywEN3+7a4#V5Qlq~eUgFMpOe z#V;sbSi18=E){+`QN>5DLBqTTOmX~zl?}n=iC_LEbL9QMLrQ+M)}X zW%#AR4p1WJj=(Q}kr4sEkR63zY8_4d(h@W)odv)ALsqo$3nR3RUofC3k#)f@+{xgV ze?teqR|uffhPFHEKKo>kJ;Q-cmcnVt?^53xW@WFC8+RA*HvQwQJH{QOmCNf#)OkM zRwrU@s2eNHvLa#@1Yj0uf?2GwDQ3ZF9qOgD3ueJw9l)hD$1KkG{$dQKn8ju8RO(4F zi?un%`wFwfA`>u6-a!-zm<2NeW8X`+%;F3yFLtNV3rA8?3iVFUF^m-JGy~cCb=$P7Boc6l6L}i1k6IV#w^wpduU{sC9=C? zmR`UtTIQc&mXiZ!Id=qR`HOh-IcDJjHU_g?L3fNW%Sw^4m}OqVQJ7^#!k-1RtX6qF zN!CD0ezY+QvLocX$hK@ z&VpICkri#s!U%0+77Qp#WL+=|cQTk|Ep$*Q1+%P-m<0it1)5+M%GH>~?m}S}zb7#u zV3wwZj#&~5J75;KaQor*QX4E3W?2<63j#0;G{G!pVTxIN%;vVj3z&s$jah2LHP*M4 zV7ZuOoyr8vVtTs-G%$-dR;N~}d}ypNi#}+o=2;McS)d7KvBsvD1*40Svl0%k!!n8oUG%)*5gX4y`8 zojPWzm2%AD3@hW9WsI50b+HYTFpKHw(#2qw30>@%WqDof#x^^;fmtTGE?^ckM9h+R z0(At;Lbk>%))aeaWSAwgw>W0u0X7D+EJ`HIvZKgY%(6kkQJ7_8!k-1R?5y&7l3WQ= z@}rGekTo$2=2Qs9F$;!NoDrDiiV~-o1*Hp1uRHWoVU{;MbPQ&}yaqIJ%z~8-!R3ir zt}Jup{i{GqezY(P%-JyurDwn_u~>##8tecca_$JsvXhJmn1$>p%u?%UVwRSmS?Mg8 z<*Krxjae9>ZOnoJMTx8nX5mf-v+N2T?4T6PvN~cG1Yj0uf>|h6V-~v$g<1Tb#DIWV znie`{Ni6JuS=_?yhr3B_uuzy~O~fn+z%0-NvzUb`X7Mqb+X^pW7P2*FsSVdy-$jDu zVwT-iCSVrR+a;iZS-i1346m;8p|Qd&TSd%*0L%hSFpD)d#Vi!Bv&3QqcBUYqlsBsf@Y<&V3upi ziZ*6pgtjpY1{5W-E|`To8O(A3bg-vVFw52vvmgMoKoiVDxf-+BT`0`r_ap`c%+j>b zF-u}$2h8FYZa=(^)CLQMS+%ifCYZ$)+udDyI>Z~)p2`DbIjs= z?=Qw+idkIdPNkj{vsjyByst1zEHVMJ5X)S*#w%EL>P&mTN0tl%85C z$1KjUGLBisn3-G`+b{{Un4T_O3}%_o#g18)*TrsZv!ffBWs>UxWSumvHjKC~6k~qaIC|y{(%3+rZv%KM9V=xQmHK2)O7OZRtE>FyIu*{M7 z4}p~YXkiwZvtt%Y&wyECu?({`*a1G|+!2`N#xf#c7P6x-ORb}cSz3Z-rL$m`o5_kc zW?_W3F$)IhtVrzcaHc4CGMMF1=->uQ!7STF%z^;S0!=Ur+FiX=y z$1I739WaYqxc%^!QX4E3X3@I;YCQ`AFbg!nEM{SfS$xdqw!#aTg=~#kYQr_wZ!W=d zG0Uw~CSVrR+a;iZS-i133=dQJ&{$!X?IUJE0A_(En8g~KVit@pO42Tv1#@+fmeL%v zIN$q=F_>Z&m$_4^C&et*<{0lQ%o2-Cz$|$OQ6yj%%m|nT{a_ZW$1w{RR+!}$%Ikbb zORbb+7H3!)$1G#aOs$1Kb1VmG$g(GAQp$#ns349X0fK&LnFg1k-fz+3lFd{nB~?I3A5ZzWGrSmT*6V9<+cfb7R+)-mDiKx2uR6~ zHfBNA#4MOoAr!|f7*cUYV3ylUoMIM~E-c;t)|U#iyyoF!Fbn22powD^tZWD_Pt0;B znIrGt8B+42g;`+Ej#(%@17?ZEGR)Fo2l$Y4M_`sa$cTVh$d1A+wT>ocX$hK@&VpI) zA}iXMg%R4uEErIf$hu$_?qo2_QP9C{l!95-Ma+T#%mPg?3*~CeVt1i1i{FzN5HL&A zLdPtLg&i=9Te$u3Zc-a86lPf;F$)4P3pBwjW?_n1e9Y#y!V8#%Y>ioJ!!_3LD#3Cw z%h4(mFpKH!641ab-q;<6cUSq)SYejMh*=PTS)d7KvBsvD1*3H&oYF3s1#@+FnbI7y zIN$q=F_>Z&m$_4^C&et*<{0lQ%o2-Cz$|$OQ6yj%%m|nT{a_ZW$1w{RR+!~T<#j%y zrB=!@i!-c@W0o;yCfCI_Ou{Utr%M-uStfL`W0vK0u^Zd$=mut)p4!vAa;1#qUWB2$-d5 zp<|ZB!VZ|lE!=+iP^k?T3bSm8m<0it1)5+MvoOUhK4x=U;RVb>w#F>A;Tr1?mSDM< zZ&m$_4^C&et*<{0lQ%o2-Cz$|$OQ6yj%%m|nT{a_ZW$1w{RR+!}>%Ima5 zORbb+7H3!)$1G#aOs$1Kb1VmG$g(GAQp$#ns349X0fK&LnFg1k-fz+3lFdivv6L=Nw!zZ!zB`CSrQ4DrP^OQp4ZWra1>^FWWtY_ zr6?bj@Z-LJ&S!ig@4shRdrP07B6{dN22%1P-3pK$iFeee_9kv39E`89k*@!v*Nt{+(!M8$IkL^Xg89-$OOwPQq72tZWO1W{40MpWGR zYz63#0SpL;s%fDks>H$$h{`S8emIocV4)Dz6(gcT0HT5>h{`NX5tZK&xvlU5q9R)( zs@ibfNl%bqxrpkCDiaWu>FpA3K~&z@9fnU*`OsJ)s+}UDLI9$ICWy)!n<6TVE=tla zhzfIyk~BwD&iDRe#HNVKW$sk!NfDK`IiisYQNzL%afT++A5mnv^)DaLB*&0z131i|qQ`vaolI_Rjimp4Y+S zD?9&ee|@Wcvf-&GOC&t?bdi9kzN}53Pmn$H+A!-t?ZsD=PnEF3Q>SakxZ_`R1vb_0 zZ2-eOQ$jrqo&_oSvFRxNsUyi^eS`)whdCUffd<#8I&m-ZIRl65P3dr8vk zDcQC-es7WCvsIZ|aU!JTN9%xgm}`!|*_;kl*rXES>2dYygbD56HsRa}3OBJqhjS-l zu?!nD*da{k+!5H|88RYZ1G0_{@^dF@9nEcmTY_e#vuqQ5lB@`JCi}oK4%*Qh19UVi zb|>pj#+?kosAePI=RgNfQOZWXS0Y>-s9~-1M8#qwUuY7&DJPV3m^w2IW<_rw+87X` zchf?T-id`t^d5IIgj=|F_*|(C7HT8kD`Vjqy7`I{0UP;3ljv<0rW^VCkhL4HwiRB8 z-ef&`uPg?&;Tq~EOR#RGZ{VApu(h(eS?{U3E<|k8)qI?fJN>~MxHvpb>=CCwU~W;8=9~38-}{Jhmqu)txg)73jo8-a811Tv z9g9qe*m8X|Si0uq3;}Ls|naOpr4KZSW zpNQ>aAZ%l6db)Hm5qm-xd&FK|7rU{|j{cc8Z|wiTBeqU{nB=+;vC$AW>diZWIzq%I zOT^w-?6TRLVh@US8+$*bwjFZz>fVpU-ADVi9TH;pyy7J1A{;B4o{P}a1LlL`|3p-G za=qW%$%>`B>-V{$2PAyVXD zOE@-WpCO?h0WXG>{AkB)WX+h3&OBznK%6vYQ%W1s-a#`Beu`BdvrWNe7PHS(WopGs zASFLqF&pO0F`L3O#Ozosi`fl!2%kB3M9hAXj0iEC?5LPs>uAR8mY`YbEHV3~vZ5Wc z83*l{jR8f8tV_&hR1>q$f(}ksO3c1$jM)f?+0Z0rQ?8ELHkcI$eQ0Aqh}lgGJ!U5s zc8J+-;o9LVq&8Tnn7vDk*$9Z)&?IJ?g=x(8A)DI@FT`xJbouY7&DXWVjCvKY}3=Fi;3A2y4Yj(^19fKZFY1cW>0cmh}md}F+1-B>IgBLY#p<$ zDfXbqVs>P2@tDm+D~Z{w=DwiVev18_eYQkft=e=iohGhaQJ!PzYb|}9(jAKO^&M= zu&MF`MWp0YQX)V6TV#wMOt&eOA2#bc_d{ea^!_96G(TX~d~a@5<_Dd7paAuDiQEtG zRIVuBW$F2rzFVpM@E(!=v&;{lQDx?b&nkl-J|`N+1DfQA_d*8mP>LUR4}O3vKR`Bb zxMt-Cib%;9q(puwWZxJ+m~K-lKg{bo_d{ea^j6TiDdPdF=6fqg`Qd#MxgS2DoQ`9( z^a4viq*Q+Rut@*eQ~iJ@`Qbvy;QdPR!_|Wy;K~n>#19nd>QGY|z7mB2sd?lxQS8Uu4WkFx{q99(aMS^N|qQ3%wVLtNY!@ z!ZYU9JU2cYUih;5*??X1y%+hl)w99xiHjuivG8f-it;m-e%8{@DU~NaFVa70>R3RN zJn;p{;9{kCV$a|Sxbg%f84DEYG!{&^Db2=0WOo}2Sk)Q}>Qp@&z9^B8g)b|ogM2Lg zs#1C2Ya;!V%>%1+L)lY7=N{WwSS=dH0y^Y@uR{i3Qi=!m3Lbzf4?s3=xLNg7pol!M zm6T{KY%MZoESPRnDi3U<>wGLk_Cjx4ai@<3?3(Xw=ht58TIv1p4T; zrSiddMf#^qy&upaA6x<%d{Zet(AK6FDdEZokmP=#NT>V3beq!beu(U@_XBn%_e1J~ z?@8o7_|CgNkD0}{*REsZ=+YHeNi0~uxh@yBUgeK=jSe{+x{ns)b_)R@-ND%)&D2b zKW%EODW_Kd6*BmL8j4M|!}kxs2P-KI2ab!3NDSF!N%b8DU&+kN6`b-S@E zX}90|E3MD}CXtW(e<-KD!!7-nQu*NDBK_x?4_>K2YCZodW$5{{MMKY{Lq6CH8T?%- zKG-k#0Iqxh*}UQD6&|37l)Oet)br*lBD<>(uxpGDww1_zuvWRE+}_f4O67y~BK;Rk^#MBMgGI<- zJEizQh{Lb|T=@W!_<$mvd|7A8!&7tkRe>I3XbeBkpZ&$GC& zn?&+~=8>+hTv6^}>7JJErBt5iiS*AfPyD2sH~49oH~3kcH$am-u{UI}yHY%HK=1@y zc>=O|!wo82KoNQ37d~&W(|BB9x=pD(v2%?JB732CrHBj0&Ld&feDBH?E=cE*_L0c_ zut_;>Xl3a&EWM^u`Qch3{TG`bCe0(ENq*QLGT2use$b&!_GEx7KR}XsB#Oun)8~;) zw<(n$;yhAhcbiATsxk9O*Otira2@5eGnA#*v-J8(<%b)H^v^UuOqxeRll*WXWN?5| z{BYgi2e|SBB>9_}BJ#uZc_h1_vp{57!HRfGa;h5nrRf!)` zyl^v#Cm)z@Q=0i8vb*{KyTK?xdW)3%2wwO67yQiu7MT)d%R1 z4~~Qkj!=pZ4h%kkD<41-A5f%|4@|cy&3q8qU44LEV|;LwMDBy5l`G1-TY3+r^1(et z`e#k`0XpP^dqDR%K7b@Xphzblm~K;=`5>~p`T)De_~70WxexBETv6W7 z()%lw4;~=Wf5lWEphG@51~RyhQhabw@Bv);0FwBCBAt9-x=m^3gUIgc1MC{(g9l3F zK6tQl`lQU#W0lGW4;AUZa;gu|As-wE89YcSKDbfv0bKb2lK6lkoqS-rO=;$X$nNR` z>>A^Phe_l=@Tt|l2Uo%$s+w%n2s>4+mx#9aZWX| zyUnR$RWi4jw*A=>dD~A?PHStGs_mzU^v{{vc1o-5&w&h1R7%?q32ld~wnLJ(Q>0Vd zO}8n{+8){6+KyFO+rO;uM}N%+Q0R7bE_75J8w0&s()Q2mHuDUdV=tPMEI>( zxqoc&B5Be(urnYfKQ@)kk1deJg`1e~4XPGyVt8RqsW|>ksTpbClvW>Pyg-`L#hqwg zSi0}l_2SN8@xHX_N}9mkW9f+!_OGn0KD!{V&n})S(z}XS_U**d)AcicMyjtlPTi)m zFn%j4_PdRZ$1}EnKx$sZQHd;k1(LXU)2{1QEUna69|_M2^mdmy{i`dvRNsueSjMR{ z&V-cwSlUmO9lsCC_f_J|Z2hSjevk}b)E#)D-a{1wZiKM9wHCRfwYpWZE~{I4 z?y$P`<-3m=sw^FWN-D-Ed9%6p~(~4?!E7_Z=?ZFp27uE0! z7Is+O>K3jYo+VwuLalDSITrdCDF|5I3QbnGnuY1=R=*)~Tj7P(tz_fsR`?jM8|kIW zcUj%~3SAdgx0)F&(|7$tw5E4)veHE zb*nWnUEPYIMM)ameNBemiN)N$izB{B!Q7%G%~!WNKaSFLb*szVk<^o}ZnZYYm7&*G zlQ-?*6=)f}E}pQuHSZK^39DP}jyOiDTm@0fRQc*wF4XGQt7;;4_%h|SwAWHA<*Qqr zVP$-EYr~St%;dV*hPb+Q7gdpekz#tfbTO-2Cv>r|Ze3m%yRprVK2#&7e>E9;$pMS{ zB4v{6!s=Eu#MP~NCs0RN-AcAz-D*v-2ZdI*?n-U;MM`9^?(HV-KK1t~x6;QZe2?-L z(e!(ii^EyI&*B>s$$NS&Ei$*CFcIIQ+)=doJ<1v4oumKB_b5EF=6kzam3l|NV(u1_ zYr&WvN3W7d1Lqu(fT_NviUz_}+VW=ZwuY%*En$UuQcU%lg#WS{?u7elcA)fnsnsLp z4Um!_n~rS)C1g#Ygq0O6!WymCO*l6ab}7o&ij%@3^eil$v)z9K7GY0w?>f|UGNdWU?I!XlV6!y*dL0E=R=3>G!m0iopFFc?!<^g0<4U=i6-u&CD2 zgheeuv(i~$(VJyOurmQJ4Am4CAo4!(VcZ3{aB~A(-U=O@trXyLOQPnXy2FbS0l)>C z02j*Dz{T!BJt_Qt!~+4iG%a-C!Ue&?4#34NTswRlrQAXRms?@stMwexf^rD}F3<$H zn1v~D@gbYr3NHW`vNdq24cAbAiv$&L(c6_dp_z~t36L;0*EoaT_PNx=y+on zhi_N;&{%<(!y<@50EmGmAjTS-f*6d}@_VISKn&&;O$>vTIflW$isKmOJ>sMo20aT)7yef;4EAJT#iw>KDr5gI zVVDodIJy3Vkdhy*Pm5vBjA1A|1BQvkG7QsT2RM;)M_`!u%7}nr$d1A=wT>o+X$hK@ z&VpeskQHqV!%%Hw7!1%CQrO*LI}mPeFwBL}!8?_LVQxdv^zA?pfMK8shM`=IVeAeR zhVlCm0|JI=TId)iv9JS%aSPWDKO(ikLSdN0vCt=95P)Hz35GEXQw-xnHn$aCz%XQM z3{xAfq5dHWDhx9Tw|rFB1>9n~x&$?Fi#Kp__%W3a4HRydA__P@P;1;XL zaSIn#lP@1uULV9+YNZ^vIK#>~ZW&`{a$Rgg#4YW~7t_Hu)0SVe(}fZqXuZ!!5sV;Fi+^Zh6-T-10B+ zw#sn}PpoY2<*&L%i>LH7`nW{GEuRtzxaCY?r-SsD*+u&QAIxHo|vUxE%kp%mD0y9hfF06U-w?4Vo?JM6~NjqbM@1_apA zw9sKkVqpi^;TEnPepzaRg@PTokFWy)umhUF4znCcElnRU`O656bY~cGXm^DKd{5yhaF?gOs_K+T#(c?d z75mwP>`e{aaYVo!j~;;gL1p+uy3J=S%dNzaB?llSsJZTOwoUOTHmt z8+R1tHxvG4IA8KzsnsLp5=hC9_IwGlCLY1c3Xk|ZAMC3*K40=}aZ-eW9_^^U_ENp` z`M!#eKq%OgArzl4!KjS=zcgR+JsBt0e;-ovqXk@G&J0{AJOglv#WLX1UoM09=|DI&euW>;PQc!nMPnNNuoCz~xR6xF7(yKoj6% z7N)?(hiq;uyZ~It*1)AUTtoeb5_ADBKh<>sxR|akQ4QeY4O|@lOyxrZ1zheNfeQkF z3p4>P*1#0FV5qi^P}&8!U~W;8=D@}I-bakP6u7v|9Z5YYaIrSWpkD!(SY!fl$vcH2 z0k~jB050eUxL7?7T)0rc8nn0~cpl83!(7%uKF}ZHU0-I;tWEE~ckT z7Xw@-bg=`M<#n+e+wADO09>vsLmjwGa$Nu}Xo$ci?*!@yz=doLT&yYfpb&7m9<>>8 ziR{(A>x(<}JzIOv^jQfvi%OO3DelC%(fB&U&+Cs$AUt9VcrCJC5Tao^$ zdR4x$ul>(`cZC}&!|n{Zp_Fydca^)@hYhaQK|?lgxMTJGEJdW` z#!{l)6>cIjW_JbCZA!Hc`lhI_JQao^E@BmzS0J3?* zohuJeL`rTcCGx*p-X}{}$lIHV!sRkpUfYy{j^8AibEM8gQ6v|2w; z(ZPSLT}AJ1q4jXpddTJtM^+<%B2sb(DbWbHqsW*MV7g7IT7QJD^AQl)3%xsuJ8f?n zteWrLnJeQxpgB_A11n^i_x~yyP%c=yTB$s+Mx_6I^T1tH*gSAoW$?g}qQL{`kO#Jc z3|1nvTbwD(Z+ z%e|y|DxivRB!{f_|uLlgf~uI2xv>JI)NUp4-pUT^Jx zQ)ISh{*UaA{-^bc|9#!ZOKtpLMI!ls7m+dZ7(NL5W4_BNucnftCOLLZ_$xN(FMT^S zB`6#H(j}aza&?u|Ul@BpN`AEGF_1OqF)*Z>wV=YH#Dt3D^BB8{lg?wHr?KvXJFdSk zN!L$$HqpBDO^eS=n4-oJ+W9ekI`UC(l_V@&8`pT}5U7rU{|j=rx(O#i_$)aNlKxh~9O zpdrp<;O2n(7F$vSP5=fId_O~<;x7WTvH<9mi#Y%^DKguI7~_KD$PNpR z<*O94uasXGbIeZrv$evkxp}$y{`wNh_XmoMS#uK}QR6V<4OOy@8AG9o*zm?Gsi*c$ zASFNAYi^J=u^|=aNbn$WQY1*Jg{A8+CU3MX>@Eul?kW_wOeBb9mn-DEsSJ=u4~CTd zXhA-hGebTK&j9&iu?+Gx*a3az+%Sw%$afY1LSiH*A5Sr+F+p|-!WL|kPiWn51K$evoM8xK4f!S;RVP?wuXGQ;Tq~Ulb{Ra zyQQuRkk52=!2>`(Z{XtaRw^GFD9HCf8t9M@0gw-xKt5|=3i&X!C`rRunF#qXw%2q)r;+ex<`5x0kw{MdA8 z^Sfze5nuSc(&6HzXo71RD|nZWCiH@?E1KByGevh$3+1RgLP~zLU<1sVVFQI{fDN%& z1{)ge5W#b97#%5WxUGx`uz~C-*ih?e!iJWhS?MgW;Rsm~>`Y(-gRc!6FrX-rb%71s zTEK?8KnJ&03T$|AgbfIQ4bTKOP_BjzcE1QV_}zm60X8%(bl8ws*a0@Ug=>d*mD*sT zV8cTqY(M~PfF`iPEKFg8582#ScmXz$tzkoLxQ6Cg z2{xFXE?o?4n9#)z8jG>*Lxc@^Cs0R#4PNJ;pAzwKj3C?tT)<{|^w!=jx6Trzjt2>4PkN zu+rWmrq9)(63;&bI=H`5JpZuhc?5VKn#|Qvt~FPeRNY~&ZhX~vetNyN=S`8>p3T)o zcIUY|+MmtUeRIv++$(JCA1jf3f1HRgvu?4uYQM(|_2ZwqhrX+C?Lwd!jhl<|VJh98 zuPe%jC;YDOc*{p5g`^<77%q&@gB`i;78za#KT5w9ewQF6Kk7XnSFK;w+fg64nam;i z%5^K3e9uR0_9?%WOa3|-Yby>FhpKGP$CXPC)Uu`p zXLv!3^~tp0nk9chOcN6JmWTbv%K&x8qah_fT6;di90U6o*4t^wTWvZxc+p-P!>wKr zQ@9EHwNvEgjl1aKZyz%H#*CqS^@2DS%V2+l9T0fVO*B<|K0Z=L1lUj3VgH(ak6yo~ zcU_HuMcq!dj`dsht|wmKV9pgs2%43K0wUL^+zpiMDa8kh?swKD>vbsYw(Hky-gvAI zr1FDlMYuoM^N|}Qm>u_g^lPxID9N|>d^D5C@A+82V-9;hawD|=sBrzr(myJ; z(O&?EssW2z>yMgS(h`56!n3DXxApMx(7{8MuHU-oJ)DO$8=4d)g2k=1VYF!SM+N1i z=`d*ucf9_n@cSPF!XFh)3;mCZ#KPo{inZ(4_HK)X+pXWOcRRO`l~QiucEcw~ZLn~= zqW1_aJX5fwC=o1fR}7%Z9~EZdcD>u9a@%6vw&8}br&Db!H;MmIQIzEEuZrPglq&|c z@#@~k!YScj?NfR_AEd3PRkQuRnBO|!YOYxNsP;^e{fhe zO*Fc=ezA8~EM32TeeXzbJb!R_$dM7t*fKCMTya3-(BoW=J&irwZZWl$VYJc2Zzi2 zsY5;K9~{=^2-d4VIAW0re{kd-Mv?Fbhutl{l@j`iOIDBn!NG;qtLeunuieuvwNm~E zhcm2<|G_cF%;dV*hWG~uucni+aqyQkAc84fx|u&ZCUo<=Y@{u(o891MXQ!{HcL>1n&~P|h_bPivohO>^8TCs&V)+L0b($BIsQ&xu2;sfm_50DH z>EBfc2s6SzQZ(iB_twkBdz1bre{b=;NZ!q_nEQm}jyZ=CY1BSRBw)__>tVV=_MEH# zKNse_csk~MvPzG_oKH#koiXQAlR^pR^i9Q|A)y|_&xDlxXah`SO@N7k6`XW{iD?zb z0VefU90!A!{$$bHSp&CVUwl6XWJHU!ansu;mLAephVi81ls` zDcEu*q~u5Yn-yen-GEP0Vu<6zRbi466Dp1)#utf`B1ZHqEIolK$yHl&N)lTWXjmae z3{Kcv9x=W|2FUd!}8|(ny za_$Jkc!rD!h>`55l?b(tu&|(>l57c@m4*T$$&}<)`IO{VjVZ~O$%8mm91mzX!lvX9uo3~9U^>dxD-rAt6sGh05d#9IYg*`- zF0nAdblb1r-X{&2JxnGI-NLoQS4wTLP%9B0jfHR3b4cf?NWe-2XoBg?!gM8q582#S zcwr?1*?J{HZMcT|%O$8*BD_vhILaH2>$>;)t5iPVIjf@?=*Jx(;|*UNo~`ns;aZ_^ z0uA?tjR;tw08Q|mH9TFRKm&@Bw1wwJ93X?aI%Gp>zCywI-gk`06wkTL9ZWqbp0hSb zEL7pSSY!g8%R7rA0ncGZz;oya&sjZ==eSUK&h}nEOZlSo)Ji#?bB2|1JU7P7#NXMFD z4-g@p_$fqWciekj2PxP*+KL9wd82R!c;>UBO+2%Mu*z=wpWqpuWZ65~?@9hD!!xgz zNO0n-EbBgf#*NU1TCN{i7pTQ^2dMRS=-@RaoH;!}FBaNj;WYDTi0iurdy>#+aF07uyiw)#F<5%Jg*UV&K(; zE_Qgeye@WQn;rdljhO!9WvG8QGRbuTUZEkvtGpAaBfu-NHN3K>*h53`Dy|!h?0Vhc zG5((NR{GnB_ms`^`MwtL)$<$p>OkQm@YOv@s^lnq^}dAP6<;}M`k+ec@p1vAc&m)c;VKuj4y3<5w5GyySYVG3e=$mX`f3m}GU4Pt7;HPk;M!E!;&CsZbY7}MJ& z!U1Buv5Uh`s(fgyK+GV57zBVAXaZuau_=hb=%OU;0%9>H@4Z)jX9!8t_vUr4H3lToj@G{#E`8)j5Wm` z8rd9CWOtk+VmT{otuE#Hd_29fIimeF_v3qRd`co=n9qm=4D)3z{yIUJYF@MA+NV|X z&KFBq!IabWe#p063)3{8lTgos&qGRnw0F)x77+&;TxX6iKCP=#d_k#&rLV;IQA-yn zuLEZwLBXz?f7mvJ`gJS%d+6uJ{Wq;yv$Tg+wf6Va&;1rGzwgSWy~VO*-HP5`lJt5M zE{@+@WcUSDrdE6rQu3qq*(uDKgExg|2;Q++7Q7qm5Jz+Fh~WKM84-dv*-^o}*3k^! zEkU!=S%UYMWJNo8GY;Cp8v}G25_We8-i&I3_gA5Vi?L#)V z6$)xkY}3`{X->fQ1}+Z2q4J@D3fNDI0UH4U8=3@c zYhW6%F|;U2y98{^ElScnU_0OYh;f$&Y?rwssV5EC*5(-Os(>AfObFO{r%)sWY|ID& z8~p@qtH%R27b;-eZWUiqUI*S-YNb42JHyI&z#d~}a$Rgg4A|}6Dojt8E+$}4=wc7p z%j;q{w%O5*&rT<~E(B~e#DJZ50(FFdO|}l$))aeCC}79kDk8i7?6m&wbUu7{dTisn z)1KlcG5aT?x|8em(I+dGGVgG%Xmj4-FU(OWCMWX_JhYPUPFKvunEg$O6tll8GB##^ zTf(t1`+E}V5%7IT$&Yr-M%Ikk=*(mGcf?6!Hl-Gp-aIa5n}W+MX8%BysTDtjl>BJL zY?w30Yzog1vtzL=W;fU&eCFH{G5Zo35n?vkQ8ByL(Tv$GL9^0XV)l<@MLT9Q4%#sr z1Bwz^mzd3{CT9N>I{21SV)m0`%tk=Wh9)taa&^qM!K|3=LmLA^%x+rfF*~uaL(Fyy z*A9OswZTHg?5D(-jewX9O=7lLn8s`$vbnABLd+&x$L!j04fP*O&?RR7T-Sw|ZMwQV z(23dJz{TM&R6aCNG5e`8W+NbGLz9?o4NPM;h887hmza&YIzd8d9zMy!2wynkZr9?Ut;a)}gYvqdaH7Q$R6xcTW zY$(790Gy0q2LRm24gf%tPDc0xWbiAcoQ&`^-J_h30#_#^K$5-ZDIz88{jZY|N|7-q zBbaVes?X8~yy~${yCQp`Hxzf;`6yU5-+Llg#&cra4}X-%{qSeybR>$U|7Yo6mC6r) z6Y0NosvpoKKl~js_>)rn@busZxbg!e@dHIV`N4FX(##K$-OUeJmH5HWiE%&tLn1#T z<6p`Z<-aZ6tW+NOk4XP*Q$2tVd0_5}c;KJ!Av4gvT-E|vh<)A}8Sbz))rTE~P z!3S{V14y!02Swxq_SKzyR*va5rSd^MD<`tMo|S`L$yqsmPK*{B$Oo$>k`In3%B_?u z%B_{E_1lQ_-)^mclI*k%VxAmY{}j=1N(!ab`fVYDHA-pyvqJ0Ps`Ze~8y-^a5knER z{%PL&r;Chv7MN~Rs@6Y4*ZH#`vKM;K6nEM=F<3RqPqRnA&Q}snzQtgSAR&^|M2(;i}b;q}3GZ)N0dhO0!l+c4&1q?jJw5=Bai( ziCVQVcj9StJMAse_1vzc-5v{GV|~6TW7KZNf(^>)kP=IGwDgKf<%yj{`tLMP*mgaP zes&6C^xH;39t+SUPwWgC?4T4+oESU-SDt_*djwHLO4uVvqyI#aG5v44O{qL_lCJaq zkL-n>{-mw?|KzzfFNl74>Djd(uxh?{3RlK+g8cr!l0<(0Uq!j1ysD+UD3u4UCenY` z)cYSD^1!Z;!IhQbfs=v<;K~D#6KJTU$KH{GT*yZ-~>i$^D<=g54zYv2b z#19ndrTIArIUNGPs#iJaB6809<(hl8gn4bQ%k$+mvQw zA+o!U1?)=3LW++LlSn=gKDv!^+IUo{T7O%S{`;-rV@Yi3T3UH-oaf~=WkJiuk^r3Bq&DdMdbBf#^}- z7-5a}u}nB?c82rNgySnsj}s?-tAyspX?om$%R5bPM^%=sG(B}2YRAH4+31?3f0$92 znX&!T9jg{cC9<&m#2d2d%Ij7vt-n&$F1swAp_g<+a^jvTrE3~jU#bNyeKkNG_DD#{ zkJigEnAyuQv!nh_c|R?SVME27TYbGu;chR-tbDbhVl0-u9BZ({d#aopEJ^oKf0&F2 zFUQD^dO23>Xuce437VD8@^b7^vLe`-tVU%xhnHjK3`E{1+CLS$J1l77k-*EbM?(h> zQp(G*7xL`%1uY18IR;H$j!~|DIcE2*=A8U4#slHySkpp(ImQLS!VWLT+`_fP6DZ{t z>gCvru+SH@AmHT~GF1#EwU0vRs z@N&!>xHx>Q%7+H(<=7cC(7#efz{@dc@^Z`?n7$mtQ0+UZG>nzFt>K8TlrdNP*eT6l zjyd1^h;f&`9CMjFl6umYW7g*QVySvL7K==HIhJ<{MZ(K5yPJGpKJ@c)%C(l#9GlR^{&H-2 zUF^m-JNm^MG5s@SsDDN?$#vo77#iZsvAh$gBfK0VTfZE$rr2$$mtzqkMs@`e>-8)L zYq83MG>a+xm+i-*1BPrp%WkYuk-Vq*O_8}z35T$r`Z_MW3mlAFhG0oVs{7N!MzFacm{Ovc%=Z3Gb8Xo0Puh&z=Lu%@UR<8z{77d3<$uZ zX`us;#KI21!!2Ape5TX}3k5u05`hN-fCn@I9%f+*JbcLJw!#a*gKP~vYQr_upC&;U z;PEV77l4Q9>JpUz9^Syk;j>jfG*H0fr4e`_0C+$X;9(6+fd_^bC21Hd6M+ZjYP&F{ zIq-14_YvbR1s*PQM^aA;Jgm(zXji}^7MTD%@=l>h03MhTR^^}{;9>PR@ZdrLk23)t zPglMuJ+)E}Je*-=9C(Z|Gr2CdAp(z=w19`{>C(jjj|pAuz+-t`?8Y`b`egu*m)5{z zlIsHSKtlu`c_&au03Kv(;9*U%2Zeyg%c#wkkVN+C-pj?^V&}f`$eQn+WmVSazB%qV zQ6k}vlSKmVXrKFLL3?(5@m%TFBjQv@$&dEAZ^$CPa5Nz#k)a8$X`K7Ed^GWwCYtzP zf(@ssg>uyMASFLqumR@Guz|uez=l{XgAEOKh~PPQ1Z;SYj0muS>?qh!>uAD;mY`Yb zEU@8pSJn3c4c@@T;fqy1G*GbN6%jTd05(7q*kBDzVFQM0S4^c{U<2kB zC20;DobP?axJzM!%iNLFlfnjTa}2o^Y=}iBz=ph2C=y@;W(3%Peqe*utY)w!3NXQrHg?L6S~-8!}7Y=jcs;x12#-@U4RW}h_E5= z1nLN|fou&MtSR=O$Y4WcSFoX;ulO&Y`^GaX!wsB$^#+@-I8!3whOZ z)TayDa~4JUvVzw-RD`XB! z;@MX;$frG4F8S*mno@BvIT&est5s)Ty+YUM!KZ_kU>7Bt8)siFAIyw-or8th)QG>% z!OV>PzXW|=E#uS~uYr{OXq|lpa}4xJ&%QD*w$8qya1;8BKKshbSFdVfu?+e&*a3y) z+!4^{l`X8^0TjM9nGT&T7qV!vm8xuj;!#(YDW`rYX!68-fDgg)oT+)rLDcy z%(C%&tC>HO`5115Hn4L2$WmZ6?(8d`JseH&2I$}=N;#U~l|*$v`w9U^6F?JSML9vl z!|V>UJ6^!b?|%#kz^ZAX1FOWs1Xztb`^qicZumy24HoKXf>&XopM8aZqY0o1urdqN zqY3_ncl{bF<@Xgfk-J_!k&ZhBx_7wt-CV(cO%Nm~^P2de6ZGo;4XJ28iHpx_)A5GwV z?>|Ox3c6h8PNtp|bXl7tV5vY?EHVLftY)s=;9?&GB(1CBGc8Sn*m-Ey4jB=SY9`~!OhN2UleKC*Ch7^ z;Dv^GG(kPum)k;)CYaDdhnAOh3w1O>*A~`C6XZh;F9v8ywuYA06uTF*S7DJ|zY4p& z&%WYup1mXEY=So$=6s7p8nx$%gt@Bb*#z4EQ^HYr^KA(~;>}A9BHt;s!Y%KDl>BJ# zHHR$DZTXrYtgPOhIf%r*isSQNZx`p31TvzhaW=ta1{tv@!-ftSF)CyKFG0rhWt?39 zZb-?G*4YFw$3VvPY=Q_G;a01ADBOgMqt7PDAY&|+LB<9P`9HBSh+O$qAX3L-nsH0pxTV{8lK%L)@7!W{R(?SPziG>NM8+SH=Tex=k0jUiZ zYPRe(Sm!!^|3D?v3|Hp|%rA5{4O=&X)r zq#t)Sfj4|{c!A1?hHDn>92)Mceh@H=22B8+H9Va~qX9)p+5&VVR{dbEHtwugQ+J4bk^nwhAKc8i%bA?d1p~106NSFfDZitI;+P49Ty7F+1Ui|Q@$uY zwNeh~oMB}g(2X%Oxh}RL0=hi~=)%|tP{;Ii>0-d#gf4cdv%D^LW1Ah_*mrJ{>jIcV zL!3p+JApa^)FE3#9czj`Km>K-^5n?wxbNI$bT$D`vTThrd)U0*@XUuK5}x^}NWe4g zedjKeu);H~edj(dp`Ht$fRy}buiQZv(TDFlht3>pd_OgLTS%KV#HU@-1 z-n7sId17IQK<*Z<9e!47gM|v@ufsxLri*|;4ow2NS(pZLAF{cv@IoLbTL<#ma1Hf~ zC8z@Vq=MMA*Fj1aKVPr$Z%JYaKS z_1f#x%4@qtORba#Y-d;*57=YOOs0$!*gf8}gy}T}VW1Ah_c+4XC$`n}hGdEYr6TG@NA7_+}1kz)2&M8?MK zFG)ByW`9jWJp#TCDf!Wk*~pqP8=ZN~{<1h}%%;?YedkQUWfrr)p~}>XZ$e6bv|={Q znPWDEXNcLcSQfJz><~V4?ueNERT&XtHrY`zyVlW+*)2h{(ph5mw`4^-W-|`jF&hK4 zV<>iah}n#4V)l2TgD)y2X1^iEYy`w?XcDt2SI2A{%!=7Qv@syW?52etvl9zD#B8^4 z?eG$*4Hhb9zcI#a1jKA;60^<1G-msd&25DjVm8@2X4i&msDE36E;0Lix-P_Q)79mH zPR#ZOE)Ku1@}Yr>*>8$58v!vJn#62tU>dVAv?xit#B9vf{+CMgnC*P;BgS1Cvt8zn zq@FZpTbpCNt73L6G9hN?okEcivoRyYZ1fYetsalrTv)~I?_>9@{Q`&ih_NXwrTHKZgu{sFeK#-mH6+edpk6KLJSc%{)bme`Cb~oQck<@S^68L^1yFJ`WKi7>@|iCdEj@D!7r8Kfwu$?z?BCe$+znikq4&lHDtO?X||U}WOv<51G|#FG}5u~ zdx?B3{8720{F9}Bw)8Jb<%$0j>3?YISU{6J@mI*;4@&XGxxo`~9N@@FBL)+o1?U2nIma4rYD5AE%UP^Qyyg_8lePFsxsoMTVUFY{fWH0pI zB<{35*RX27_hzn)d#-ugH%p|pA6}H&Y?@YIL8O1-)K*hYtuAzRG5C+Qr|7*cv>L8j z4M|!}kxs2P-KI2ab!3NDPu+73yOMUNV}D+@`Pg4c6UtSVE?Bx+sXVbpr2mnrV;@cO z#8!~O3Z?YF4pg=0AY6F@l8k+dbQ=4n+mvQwKeD@xeXL5xe!9QZ))L7NM-}C^$`$2y zmabJQ4{R^e|EPIj(sK|U^1wRCU>l`);O)T!aOD9=@*JdyJTUz^Xu3_QJP`L>jO?z@ zLF`JNgX#UhULwE$cTi5d@F`X6H;VMNh*5EH()~|qwSGs)U{NWpe@AFNT(usO+zAxv zbSIc@Q<~igk=^b7$ExH$NZWoziM;JQD_4|PQmVFJS)~8*scomU+I|(tU?-)t{hguh zaMgB5(sqh;YP;z+rCHk}yIb3_Drvj#DWtOj^~c#&CDQ!G)kN|=g?1IED0j1TcT2Bs z=^jdZcioy1@fJNyZBHR>-|wN}t;&Qwg;31SHhV$`yC`L6n|H}CVNW3h>}&(wyy1i@ zE>KQT<2-57&NhduBJC-ZRDHfQjIG-D6dGSOJKIdJ7gTF|3Yj9aT|3*nT^4!hiR{(A zcZfT6Pa#@A-+QNBs_(5*|L-M{{J*zI?*DznDaw5<-DK&0mR>_?@5t%?M=}1tCUnqK zivQmo{f_|uLlgf~uI2xv>JI)NUp4-pUT^JxQ)ISh{*UaA{-^bc|5wc2Kx>H3wef!~ ziRAxli!{~{ZKXx*2kYIO55oSKt$@k{RI-}fOE(?5PQu^eYH`ycM)a6Xhr;Pm*H=kR zFx&uA@}s?m2w9vF^fg2nQq2fbVNqg2#ql*n*A*w7BScSQ7a_B6Up@6Yf02I;TGu|W z(iAoJ1zNM@I}BlKwvgy5yH*A#?E1XQ+Goj!`ZdoA#QlUW)eb=i$}YM7hLDmUt!Ye{ z*)*ov(b^#>=T>WoDBNut)5=%N&SSA`8neL;Gm1Gk4BqrZ{p-nyFpWue)HG(TqdAS) z5;QBFWg7D!SrP0^)(|mN!!)Kj1CjTMHUP!$4%3+2+)QKM1UlGXDbtwm;ThGvZZ2-BEN3w;`s3xb6mrZL^ZwZofI$}QA1=6kWwUp*pV8WWmK zW15BOG^P*P+*WvD8k1~2jaeJ6p?)I?x=dpptn0!wrs?W3$Hg?JH*j%yh{}fsY8vx> zG|<-yAz&I4noMI_1Jh|t4Ar)$O2b&0_@O@L7A0vujp=;vBgS1ijp;IXB=w}znAYYv z1z1gE#v&7@G4oELNSMa7yUBM5LO;`(R*z3(a-pU%-zC&Ays`2{>8X|SX-sEW8K1@+ zV`g$)Y(t#JJYQAhYlTctmo8=+b3zyUH0JWU*o|#=^!qhp`tO#ZzC+L?*M(_JG{kAl zyc4J+Okx|u}6Ew>QK_o6&h9PNZ_ z>8&h1Olj{ZLyYzp?8@~kZ6?nqb8aD*2E>j^5aX?(gPSV_F@Ats^)s@sC=q}dp~>H| zloMj)@7Rdgld3!HMLE7|5aaZEYs6@Z%=TBHxKA1B@J_^qO`C_pQ@-^52edXLRj8e#V2N@9{ zAK6imuh!9od@Vt<(peziU1UYDGl6`J$u{J}fTBd!1@duk0{M=D4h~lemae0F2$A?vpp1_a30w9p}6Vqpi!=N7IV-c4$Qg@Sw+V4*`k1VBD$0{P6s z6!Q6y&25DjARpNp^3{fGsNYqBE|BkNT^Asq>FR<9fPCJ-#o^smJ~U8}??W`uAs+%D zA2fk{*1#0VhxsE8TiT z+z(RnqrEp1vWPEyUg_TArD%d{8hbM>A5CntTW2(}V`N1eHZb_wumJ;#5?L46 zz^w&rcrbKuPo=NBr@^4VR>Eb#x^^;0UIW{F2DvfMA(pb0(At~K(>Yr))aeCWUwK!E7(x4 zQU5RR&BQY+!43Y7@jRQaI8GwrhKGyf?-(B;j&|L*^pTc6%F-pJy}Q|rk)0&Pj1ed8 z*^H4LwdbdopqLq>pqesgk$A6K%x_5$su_@=q(E9n_W9(AlwsfxU(Gto3j}gh| z>K-djQ9jPn$6NXYrM;u4&()z4&zI1_2}<$&$D`*F;CW~=S4X+lTwPLihq=1(Rpa^T z_12y@MP_?8R~Olx=jv#GHdn{KWN){zKafbif1-#m^SFJPO=ElBc%Lno^ydcKKSpjqiG`;t9dR)qWG$ig$h?6@zPUqkgpNxro&nOQb|Uo!J&G8f5>(Eg*s z^&?CFs2H~|8P6W}B|8N=7%F97vQO}k_I=3^urC=j`J;kz`t#^8+n3Dlc>Ph~_df=N zKPs9Q`X3dEg~=ZkaGU#*Jy*Q&2ZvSDM5E*OCG*Cw zAD&A6-aXov>{B$}_a#HXzGTqk4-RX5x-XeGfVA}o$B2E&FjxCtE6w*MbH4WPi3Lur^1qUj4xli%j@~BkwSZgg-biBmBXEe&UkV<9~2)VfAYIWaYJAxTRLg z|KM`~C+Lvt707+X|?@N{sHM|)9tRh?gS!GSJdogjE%&&;T%B2^~C7DFE}L z2rv-Erq=m0aZumiw!3%47-N@|0J0+<&^fQbNr2~7Z| zS(pM$zaes4;Z*>WyaUXaE2k3*kcEwJ&w^9JPXVU=ZUIcVO@Mi}cmZHqHC>PgGuqzx z^}|vNgc8rr5oh0nEs*0p=kCU*ma$u*UPO#v0GB3(I{_f1m28 z@VRu2=S_s|SmSv=(E~(#;cUpO2_M40xoFB~?dM72y;%QuQhsk;e?5O(WcZSOZ{J~a zny*oVgfCw!64n7U_q`2|iE;CpuT#lU*z)xWzbm$M4EZLN6l{4jq~u5Yn-yen-GG0y zf+3C%SA|JROsF`H7~ddHiWt$;*!OmeOi5yE0u3v~h`|Ya%Ol3O$N;(iTu8}}*1oqe z#~{XZ-`hAPneKZ_;U;1nz3*){B^irlh_S&A;4SBlK#Xsc5dkrh9kmjn*3n#v&=NE& zon<$#B^ZOA40;X$P=$J0CFu`==_Puor*ACwywZTHIMEEQg`o6aaScw2lFr8VL zu0-%5o7)O6tVAGNuSBQ~*HC|(1l3A}S@yksr^*LBXLU3K{kVN^z2S?)cd2}6xK=29 zj)tGFuK~2pumr47fF^j(8lJ9DpaDfm+QM@q_PxbiZ6>ZXU!mZ9?>ok0isxMB4yK+I z&sm!z7OL=EEHVMl<();5fafqH;5qbz=d2#bb6hAqXZzlsr@S_8x712Go^ytkaXdH1 z%;dV*hKT3()P!Nau+j8%>0+?lgf4cZv%D^LW1Ah_*!Oml>jIWTLtLSdcLH?;q(inw zI@T0>fC%ZteQzUs%kF#2lPr5j`#s^AcN(5KUn1d|_lN{MbAq09I|^TE3yHa(X})X< zo_ViIj>0qVOZZ*!O!@w#(5af2s@~7SXIMk~M{KLF5gqzmpx=5ZeF#$WqnFhpO!T?5ZUPLm$vJDHx*Gg{8MLeYR@m>9aRD<> z>Z!mGO-R^V9t?e02B4^cl>V!4QRK07J1@28J5!fJ<`j2r%?P84Dq*3kq*EkU!=S-{XoWQ7k_n?BbgdQ0wE+!Ml|LwLVWgKh&TW0-zQ&fm)QSp_bk8f?9t6V?cmfO$!}rB^GvoT5jRm z;U}avSSYCV1uT5E{^rzv$Pxgxpb6A63sb1&H$-kLya2Vx)=;Z9TsP83C8(g*OZD-g z@-}5QX_w+ps!V`arngJ%WxC88yEy!m%7?}ZUVSmbD+ItRXacXSu_?U5Xl2Et_x@tUrtr#T?o{eY;gz*HLX!$!#Uc~nRo+1q3GfOt0=z;$amea%c*TW+ zSC19;8GcOpqV&{CIlOX)m2r4A#?0ip*oFwN9@m0brl(661Ft4@vBRt7b+H@U?C8g9 z#PlC8L;bsvNv;d<3Jnon<()ts0bY@<;gvPT9vXsIaou2K*Xst4@p+_M>4xQ7VePw< zeJlL6Fpu>7#yrx2!bi*(-BYwVU-WA6&eQ*7zKF+Hvi@+z+$|)3hvBP>Boe;*v`AyV zXrt=B?R0$g8I>G`uRfdbyW%ScO{%ZLDx$c}o4Y6+T^&H|CXA}fNO z$$Sw*wGCo0K-=bHcZWSrxVZr_UxyAZRtkvuQUoyw05Q-6#89pVF?I(E#Q6P)0RhA` zEp!l*Sl9u?xP@zn-;mm1p+L-+BZxr&h=C>`#w<)hj1Sq|R(Ju#kgY*XZMcT|S0z|3 zi20_<1Q26-yF@rZj5l_1_$`$WjTMObN(3vp?h#)5K z1nLMNhHMRDtSR=;$mWP5yW<=Y%UO9B_BT<%oBEyCS;7`zm& zh&X4#zkU6-M8YuN6A2imeKyi}C9Ggd>ujVSNT_GQ4hC25y{jk!fhng?v>dml0G(tzzUcO>Vgn*41Az-7QfNk}7z~({)Y}>8kXUc2Wd`qpA2W)3p84uWF%uKF}ZHNK8y<3Ip z>C(jn>_4kAwc;<3k{_*@4Rhw0P2m}0b}W{~>;^l8&zw6VX8%D(gqTfs zRLrh*G-Gy4(5!TpnEijUq8+mt2kn@R0Y!8X|SnC%QJ<1u@TnaOpr4U=NF>FLtN#Ow)O>@jTU%;uq$#B4tk=hYP5@v-0ZstmWFR{Lz|TfPlg>q0LD9ix{oq`LZ|ffAY$Uik z7Xgy&Jx>uSVefyP3G-o*F=xVIbn=7gHl>*# zBDony(h{w>VC@MUv5h4t3h)$)NhWK@veK_d6T zM&*ifM@z4$R6f{Ar2jMX!KCwH&>j=tiVrRcK7cD9K$5*WC?X$BKOe?)n^O58 zo(~h*UC)QXuGaZ5=bI0%B$0e@L{VNvIh`A#RIT4dr2lhk{l|10*#f zP?T2duLc=hSt+gmUT8gBwH~s0!=O3`gd$S%DJjvj;3APR&jQnJO4a&{b)7#8B733t zX>q5W4~13pz0YuEJRi#2zNSx)!z@ThO1UX zl2%isQ>#t4Da~3P*`d|dxPScIny1Ebf8uHNxW}%f-Tn-GjrIAS5~qZ-d161vU@xV3;s?PKaODX|vPTd_q=Y?! z)c+@njOl;VZA#^dlXRW;e`GK8P8N4sEWoPy-YHz!JSXoO68ZgqE#-=Ge@m~eR311$ zr2ng__dh!1f$Km9*HnrJei%FeR~~>Q_diACf$8_Z={BX={U6y~?|IVIP4dGnAcLDI#ScFY zet;`KKoUPtq>~>^w<*p15ZT@QfK`bf(lgTzmB{ajTPatRhgo`SrSiaSMEbv-dQYH3 z9ylB_xTR7&@RQ&HxbgrbxhE*n>7Fp%rZl@JBD?E7fnBY8!k>?~mB`1!?UgIaJ6L*0 zOOH@0PuxkQ|2y-|{0au=YB+o~R$P?3_kEYv{$`kSV7}?#P zk61P4`FIzJd@LNPTu~ln>D`pd14oPWe?N6BphF(GJ7jQIrFh_H!2@vR0Z1|yDAH*x zm~K;=jfKeWIu@`i84G@foMVK0NF*N!AKgniZ9J+}t-p^*{}0ysN%)A;YW;m7gL^8a z^*;}-hpW~@5~M&8wSGE2GTo+Bt&jL9vb*6UtV(b~+V=ZN)}QenD6)#cuCA`0H~pQSnVvPvp8YC_8SW|C zb=Pu%xUp7V|K%{tta;y4AGv!fYQx;z(a9ZVn2EAu6&ZNjFbCXSg8|Zo9Js{Z8RJaJ%b|W zAC-xHDx-;g@uTv!uvlAsEsTYmP3%kgVllW-ESlI))HcT+Ywa-dYjr#YPT0ggH+xO& zmp0Og{Ypk!=`a)fPlp%gr+bo)$D~c{OE8$FeUjzOYcjFVpE4)*pF!C<4Jjw~e~mMd z-Hc}jC-y1b#6HWF6Z`VR!kmHr%oqWi*iSvwiGA*19yXZRR}Uw;XR?%fh>88*&_m2r z;7r2|PV7^J z6Z@K{fn+^?Vqe-ECdG@1{ZORO#D3f!n6ZbpQH31?ww8q0Y0|}<*zeQDI>sLj{Y5v znD#AjR9^w;7do5Rr-d-FA9n)lu!((cmJ|EZ6!{rqV*hKbO=h8kdVcHc&|*HJ_+HrG z@tQE-0eBRCt^Rvq+uQSVxP=uxKlfaFe(w4n&(HlDy1(PUdk28$tkKr3TIY&;=)HL5 zl(UcpPU%3@-itp6nFXg*o}YU*GI0iY4n@vCs`$XXfDiio9Bsz|XqHQ5jlsE=A5iDnmAvLl4<3Jj9S4ibX?qqPEd9*7g{(yKusWY;N`%vP&E3kX^}0 zD;;LYJ`Y}0hio1P)ghY>U=?Zl-QeMO9@QMOpHJC28!3nE--jWa862`H-H^?4<&Z50 zGlpzEwCR8i*{O#*WIGQV4B6`8ME3@FGP83AcpKeh9R379I`3hkSz`LLpB}F za;8m&Y`TjzNs-1ww(7Nyc-;9RTk|xKtj7=8(&jMS6+?C?(r3tyJB3AT$fg^1FP`=} zWJ^6dWOK)2$UYz2SlwGvDWyZUDx{1K*)?vu{X!f14cTI+Nf&d-?$gCOWY4aP)!DS8 zlOelb=xoTQg)n5toxnP5$mV7_WJ^=zL=g?yL0t~n<(U0HetwQ8t!T{t4EW%KGPm$T zWa+%hMcB∋-ep<;4)~zsS7GH!#%8J-2USgZEs%1!?!(SQ_&xFQMqX2r1`P{)FEp z@4r)vc@>Hc%g!zCxv>b0doT76nQnvli)^=*qb_&;a7HQOW zu`NcUwg+{yw$rPq?H|RQ(ubtqUydxW+BFcyYLCWT(iULDOYr}*V7@HB5}5_7`8lOm zIQ`Rh4s%UcIsJ>A{%WVcyws1i&hIzbB$<6Do34Xd3_h=-$oa>9FUDb=wU*;Wi0N`& z3}y#l)cGbhtN=zf087$34PD1ll}a5I$=H;W&YsjgUCOm(qvGj5jh#Z*@)7IAZ;HiV6}c7*$>u2;ed<7RI5;^xvu z%FUIGw9;X?`L*!E{B%=YJg|+MB^Wx@MF+4jE&Xo5%{;@9n_o}axdJJ<`7eYveeZ-B zIVTeY#k=d3If_&ZZrG2acHbkKm|Ib@dCKaWgFhZjL*Fbr?5uv*c!Jikv9G%|B*s zGSwB-^IJcG78qA@^Cg($;#}A5$z0caZLSNC2SsyTTY-Oe#Qyt3?giNb@<7N#OXos& z3I4meE}pbTTR+uG$&U9%{*A&1`0kPsRGE3sCpL!cT8OW-oqvtJ4R5+Grkn zC(Poc@-B*;e^l4IU|tGC^fHDa`d4Tablwh)2OZiOo7odgQLc9( zx|B9jbg5*dl@5b0?}Zmtbm5^|MHf1N)gtM419ah!o9OZZ%FdgS5?%fl(1jU97fOdN zELWn7`~rb4`g^1UhAydxiZ0H>2I!(5PINyAv*sbt1+T^z=)w%53#CIB@zA4-9hgCc5$}o+$_;Wnj$9(pvx~=o1jZj&u{$-+TDtK zbPJ4I&Pcdr591cxjgGkGrQiv2%ljZxZuvKK3u12J8EdrlYu2c9UhhNxhlN`{j4W`= zCm@VlPQtv;Kk)wo)-BxfQDpYwmXA4o;1(=P==5RUXQO%MGcb!Y&1Wfc{?T)OhuHyX z9?|0L$0wmH07hqg*rY^Yy|dPjN(18haN_J zqu4_?Bel-&(AP*kkcKoWt5;fdR&tVT{^a}?zQMO(&G_V;$@%S_pmV+Uzn<^;9NK{X z{X9j^KPu2fWeqf8dHB{E_`CXG^H^qqs4eDuSU82I1yc()EME!emnGKPd&0mjR=$|; z3B@94O4PL;r$@jT(^E|-ts*bO)cE8{PZnGRmhVmVkk z9G3KF&iNkw(bEBgrqn})Cg-7prpc+v)=~73tIHp)9&UvJM?GB9{SwTYhfA{7zXLQe zV|q!}p>)tB9xiDeLz5HPP^1qu#ht<;22FIspo#VgO;V3S6L&12=?mD-a!sX_LX#?_j6ze5n{L0*hJMf_ zcA9iCp{Y+7D>Tini`Ch*qdhb&w-b>*6-Hm9&>1wzk-dD~lhOJ3%yirdtizy*n}nvV zvXvXODRQEi+{!_dv{2LrP2iq_n=UYJ`dz|JZ#8Z@J(=&B0QZoa?g^Q4)7j8nfd6j3 zhbJw^O=Bb9LfMZ9H+>aZxL0@z)-S{s7PXZ0R!P4h={J$$?%}r}+PBNy!`}eF#bK$~&jj;zUWYVcCVnol_Qpkw3r)?wtM+qUO%2 z*cPL>d-x~pr!*SWW34|!3pU(hJKQiExol+o>hRv)Yu;GCw@1H5TYu4g`MvosARZr; zczg$0hzH);{T{Zm{QHvr04ZW{8$|mKiNRk{SYmKHHW-6DAT0*8ff%f(=zJF`WAI;# z0kwz$#fD`U6)|8D82LMlAO`<{sEL8t7Ndy4Ke3<2AgIS$|AMxRLG3%c^lP;BZ{2sr zJ@lB+82k`fdQAKnTUZ=R(w|EDGf97r6!G{!i1yzG#)I|{k6%!9euR|q7@4QX1ht3< zg^LG^G>V7V7Nb!-f;x#u?J+^WqIevQ8Pt!-G4V@eVGRE@#KL*2+w-W+`Uf%u>!aO~9YHn)-H~6CGf3abJLG#(2p7ZAMoF|6FcU(ba@JJ8Kpq}3vg%*e9$RYS`@*iI$pG1sT;=emrvHhd1 zIl42~6?g#hKQ8_7XJnxt{tAJ9I34})J=j1$+zw5a-y!MWB>lUj|3KQhLV7^nFJ}+j zx9EZUg&v?`_P{?WJAXmS9vBThzzp^PrF)Bt<G1@gG@HUSl7R>+3u4 z|9p&7H_A2kf3Qz+jm__r6<+|^;Pju~HR%8A^j|CWdN{ZD#;K(+_Nz0BLYCS08HzdZ z5nwu(BIh4Hud$gOuCevAYHUDpwM<8|oURudx|rp3y3mYoOU)LrRA}@XJA=kwW3#U0 z84CVn+pEyV#&7!ki4pS8P+YPlYp2iARr9v13dbY$YEjesNUhh{;!W@Og0y|Bx0{?Z zGqs{&9A(oqwQW6i(O$HaC0Sl_+hbcO@zrX{E#5m6#7N%ujcL z&7<5duq7D!Km{Gha_0F9?7FYE@wCFb5(`%>%Q8i9!_+(gjw?tcO~Z1Lw%rv8N4e&=`OIvLw{F7 z582pP>g)oWo8<*|={OGcabz^Pz+Qy?>;hYCrB`2dUuV+>PInihyfqMaCFZe#`alIU zcvphbU0_QC{apzDInyIIaOzAK@6?IRv{{sLR`G?1*vUtmj{!^LTF zfgOtUxxkJ)g+=TFn{LkPZ0?8)?785T?gDIQxu#M|FR)c1W%L5O#!a_h zXhXQbo`)*pyAoojNf+}1yH6ME1@`Q^Se;EfdJIQQdkl{1U5S37vkPom2zMpoPGB8& zfz8eGu7os2P87H+5nwZ@OV})~ug|yZ>t83=*Ke}x>r<2K>n*`NyuRK8GQGZjCUocH zzhhROvmCR|8QFdT*6kK%nts=my(OnV7Q=nPU)1x^rEDLucx0X%uZwzThge&~5>8FqP~`l>Bi6jB zdHVS_W-DUNot!(Ph{d)lEX|!!#9}K8jUpD?S7_J{^ISgYHrGDrwjBF-#A01zGY?*h z+Zc20gKjb?Z3@Jq&k-~!V$tzPt%ybMBlSSUa^3O2#;0xJ96D|VMb1BF)-1w-vK!{O z+N+SLvId{{{Bd!ABH$CX1wPSYick0`ZjbvD5k7@t5k4hqBbiuhvGe$}6`U}9;-=!$ zIPOo3>-`C9q~4!c5Z|9DjZaxdTB+$F-2I91`2NIra(`kwc%jFzeCLfnLvuTP=S}xv z^;ypC%6HzxvxC@A_dzoAJak*@VE%as5;N!EjK7a6oT+{0c{tk=Bqeu076K04-4C9> zvdM+ryHa+RAe~y6wdRuy_~C*qXU6nGEI|h8;Ed&9N$-B}>_9lva|InRI7>ZLICCC4 zIGdQ7(7PYJQRD7@sE3QYJHV`YxHxN#(?i??gon(SUYvC(9h`}Wi}miuBHrN9A4Kdc zbqZ%$&TXNy?)KQqI;HdYG2Mllocg=ogme7b>v2(Sf8Wf%U&g;@K8+4j?Zw+;l2R_7 z^j5>&P}0Cns!2!n>8WYGGcq+bP8-FdvI;^^ejOnSYL+QXx z8b76XMkce#NoxR`VaHJbwJw8dLl!BWoq>O@Fjhk-2(1sY? z+_7OVev7Rp-As7v)6MUbBW-rwtPZE0?coiRyZypv@J0)hON+ZBa`f|PpKS}b?cYMh z(@ovNWzAc-tY~3;s4b&01Vhjj28Ma1f!_uU`ys z&gFBxF9$c0Pd^Ch`Se*}N$RhL^m@*<{usJH;J@Qmo-ZP9y$tp~CEU6bvM@;Q3SrOF ztiZ|iqxgRcPWxBMT;DFpEZEUA>)oB+Gi%G~1GC!sX85_j)i8@w@EVGoe^fsr%)E4> zkKPwkc1of2yU-|w(&Iv-(|Wr>p&dx|VWw(&n zahxz0GdN{O>8Oz9$|*bfse%gihf4>H3R4f23Y~|J3hSoq)WeDHyw7z9%w@DZ3jmMq`_Inb+EvfO%(cZNG2w z?2Yn9gi=R}3UyO?+VJV_J}7Su$5h@THe9Fjn8B$$N=Jm!a6gsD24KBbq!l9UF_lMm zvz%!>m8W{`J06do2sKXw%z8W#N}B^s6+{?{^dZ8yvslE4kZu?e(msh$>QN%(jv&IF zaqp~qPi$worcz3YP!&=}iLk~^w_j*OAi`ZxMLd-!cA9iCX|PWhD=W>ei`Ch*qmz&5 z^$VTRAT5Ncytorshp`ejOIDJm$O#0j6z*CEb#d1+JS%e~e!i#T*Yhq&zYfra;1aUZ zVF@e!2CPCRTAZ*Fndk)QPQic2L_C?f`=9z;#HWRc_C=OH7qK6QFMg)QKWtUS3L)MKrM(3a1M)IJwMzeZbI>b}J~|G4Xc6ZgT$ zLOig>^`Y3p;=PjIPtwDXA`}LY5#D=8Bpv`!6A7^`MiGg_v7bgFsBHyPeP-yQk@3sJGeg(BwtQxYUb*#4 z{c&+Pvh=ukAhxpnNJ)>9^k_+sL5gTR2%`PZfyV{yAsWY0bdEsEXe_a4P>X0#xZ{FF z8XXs6TZ~4>MNl_AF6fs#E_^(WLzc$lA=t|D<0U;o(i0^;2`S?7P>A-w2F8Q-5Ra27 zIuAz5cuZP6s6{*|Ts&B$Q9Q)97>(i))J@|-zg#?Y-D~}wJPcX-J9z}Qu*$8ZkCOD! zND+z0K(zlo@OMH>h{R(lIuA$6NK9EIs6`|w-0y@%8vRbhwiu0mCqdopcS5h+?_|!% z2Ap3%Bj=09Aq&@(r$g8^<*NaUhvK|_3;xf;epvq&nZ-4wUz_6zPVe8*IMwOTa`!u) z==A41{b^3`*X(#LpT(%V29?ad&zn32W&wRqrO5fmey_stlCIgo>~I;XZ*Z`|#U-Y` z!NH~$8a64**~mh}#$-90S7>w<4>qjO=%wnDpz)WgtUY-GMH)7%+aoVwEd3KGx{3!| z5nX)hTOMpmr2gINqCJuNKcZ%%BDF5=!Inj8y|67i#pRWYdz9VjZl;tvDG;7q*{Ekx zo(AX8@okEne^j1Dp)$I#6+bG^qQu(b!j^@bUD!(b;#rhXEV{5w)OL*-YsXrprQ&6e zC&LN5u;pg23)|90dSP41NGl!Y!uAY!VSc*X9X#Ic!d9A~&!W%)tT9c$-OCKhuu_j+ zz;Z`iz%B->cW1DTMSLZdQhEWa3Mr!(ur+SF{X!eU1?&W>h%aEpPLnR?1#F)#)(hC# zb+I~|cJy)_G3_OARG&rZ7dpFurG;<-8+QWhunSmjmKU(n6gg4g0(O$M$#qsx&u>jZ zi|ef7S(IDs`gI?$kH3D!@-=e(`tIcV^`YP*Uccs$>74$jpt}YC-SsQaS);9Kt&?ke z+=2Yh3V%HdS>UfOgz?ua;KTl?_a^+`AanX>BeNHOo#XVLzjCMd{MB*#z+d)59Go=|JU60JotkH;e3jme^j`O${OzSFWHL6m6vQ;IOVS1FWE}@g1bVoh`SQCAyBOC z!ClXV6UJTKRPKsjvMp@@KBAXwD;a5}Rsh01#4_L|+vmfJDtGbtuW}b1z`DTn+i_Rj zOSU{U@fnN@DLZE&Rz%{ z50`Xb2(#uPUb5Xfa2GT9k}aj??J~UED0Wt8^TP`U{ZJgu7mZ{fxWB zRyruxy=1EmT-v<|<*k8u$#$E-UCiK1wv>*$q=Eh=TRNKMOe@^g<0V_Vo8?U7muyw9 zeZ=F=bC>36AX$&+E@^XMmV&!Nkv`lNcM6LbchL>wF4`w|Nj=J4+!5Th3}bHh0&HV# zWl5!!a+fNkjB;0vn{L0*hQM9RQANyMVy8(Lle_wKv2xe!x>%h}J9=Ak*H&;8+=Z8H z`-RT9ixwu!mu%xsU>(L?+$49&OSaM!IZ@yx+pSrfa92>zZ*2puGyLL~w3yUWU zcfC2`u4BPXY8dVL1r)R zy2R-NcWpFBy$oh?PPv>S=O5KI)tDC`N|A|P7Vx9UME?qn;?QN#cpRdgv6&NhcTY&n z9*3TS;ytFF=ubp4I_*TKBK1JPaRL2blgrED972BuMb1AeSm1iuRul< za=8}!8M%n9bXco<TLUp;w0$5KW^l%c(vgca(9amrQLLGb)Q*+DGe&e5 z%LXHjXN**@eZ=F=lZ)nQAX$$m7in`C^$T(dMf#9S+$k(#XZ$|$+ixasx_ZRkfXVy8(LlU(|Av69Q|x>%h}JKB>A9uMsoIwKca z2s1`;C$J797jBj_M$!~HQDDX>kV{Y-xfJt73yfR-M{BC_j1_Uq-!KoP+;SbVz%8$V zFmAaDzN`g5-HiWukOBAWUX9Eux47Z7$n-B4$;i|9e%k9`7H5vvQ{?=k`o$#XrF=qf zVj6iZG@eFSYHX&v$41e}H7MSLMp*l1iyd!(bBO2-6gmH>Uz>e$Tgkc9adtpauBgKwNMq24G*zrbqQN<1(lU3}X16j_zCfLE>Cb8o!l$}>0 zC3f5;U?j?_q5dXhG{KIyVL!tTvDIWu;*Bb8;B@!xC~pk}cHA{! z2Q!Erlny(jfgU^PXqGc=f*o`h3v?rmu|xIRM?CI4c4(dklJ$7(kT!=QyTFc6qz`t) zox&o99dyI6gZ7CXQjcN>cPy~u&DhRzO{J7#hbp9uVn>aeZoklme%K*)nshO-qfZwr zcFeAe)!DS86YS_0I>QcH2-p#K0_!mB;AV*((iAySMA#A3#e_-09XH$e7WcrI@9$In z9%DbBvwREYO^{W-lX9FrXZZ}sbiU-n(A|vxZoY)4tcW|fZkck&JCFtLcrS!;NAd2- zk*M=r*um=4$SlypKPU8Vrw{WbSV-9E!+ola=9CY>EKW5aq{#V4_1zQZrJO?V3r^8_ z6#89g^wtwSE;Kr`@;+!h%g{33cfQ9)vCQL9ya&tB!-!>cW`%A>YQ51!UnBMAG~x0g zIEOyEks{|G74o5SX!2p2bi^wNY8-&E#9^~_WIAP?&&0geF+DOT#l95(A4EcN* zUR244M{t#V=m3^7r{C^YQQd?K&kiJ?k5P8siIn8CLm(e!kbEc|`LJ9`KJrrq`REUq z4jB2Q9xC}b4;zq=dN|SjILw-dAfLMh@?i$ahtiRcc<9MT582pP>WqB2S&~obI1crX zAfpNSd;KD1Brk$RMTxMM*+AH{Z- zYbvFbd{iN2lzeL3bo+%i^dld!)1-?@K7G1a$!B(5tj?w#osdtz&>8vALLi^G6Ih3l z4>wElk*3IrA|julF32Z5qf_^e$r*O9Xiajj=vFYvj$olXAXD}^5L|O)e6NTnEyq6d zM}B~^pO?O_JV>6wi%+0iyjMd2W0KZavA;lG|Z} z?^kROX)BV_DxMqvB1PxZNcr6OPWZj@O%rNyXPsihvMY<#C0PVUR>BD0ued8j&HEK% zTa4nl@g1wF=rnF`-wZt<~IRYQKZ6EdQ>g-$RNBd>^9y-+>XJ4MgAv6rFD)Wd!hUnnZwFM1aCYfJGWb zKx~WAC;~xk5h&K`tzD;BLI4;Y7h^;LD5mL1N#}MriS@pAD|Fbk& z{}YPNdZcXq-L3W1qV*K6^(@k;^6xiMIWx z$U@uk?$yt+g{62U{e`5zM2a~43ZlKmz&Own;_z#V&d-oC4tNz$jsj{C2MQMl7HJd* zu`NcUI0SVRhuU|q=v5R4t_gdyoEv_FEL_WIb2EqDCwUh{WH?mXC*3Y z@WYZ-d3WaqUrpNs8@4Jh4RcM{zfg95it3>}oQDoU{J$Xa|0}W(|2rTM|5LCg?>8`(VNKq@L6hZwm-HW!{u62Ia}xQQ zC2{qG3pB~d|BJG7J5ok|Rfs$@7{0Dz=nqxK3g1Ra$GdRsb>83eYuAJtOUmyrte~)y)ra4j%b(+I@*kGDN zJ)Gz+3?5>d1D8g{n@G&yGzX=d<`574G>0Ctv9HwGGzT}!X^zry9P0Ct(PWxqOYCRU z9Ac}-0Ii$^DilCV02u1o#bHts(A~wxIH*A`N_BqWV_2@JQcf>Tu z-XMnVIJU7Qu%uE-r#Vz1WlqEE1XjH2rrR%MhG~v{P=y@>w(OXgY|_P?=IGPKI?XY= zE>>sLj@|=DOnYBAs&69o3!P1K&_bBzh&zFG*fa+>%V`d2ikv7g%@JTPs15dt`#TG8 z^X62r+W+Xe5}vUfGwOF7lo=PpZFKk&h?vBy1gD&**@Za|LpRg)YC*ISaK7!uzjat!K%91n5a*yB46Y`x<~ zAOEe8h4^m+5yyX9Xs}44q}xfly`*B5qIAhS0IL2e9}1y^xUq8 zZ0sv_#_ilJxxI88hx%${G~xDpU_aw_vDF0X$nDy|>F%B=Zw&;u--``YZf6F$ozii; zG|+Q99mSHONSkmw-OX~QF}JH;`-sP#=XTB0K(Zds?b7DJyal(1B7L|$?i3a=Zl@c@ z?X*vBmwJ@jxg)rJKXUsTY-4doNu`u>yDFrNa(j)NZoklm!0r22xLxct>0)wwpDtEz zpIsNLvuQ`~jU%SLw&eDHp)+o$g~07`C$J9Vc5as3E=`dW1-ShH)+TSV1@-*afzaMr z-`M6EYqWI`Yt(OS^Lg+u3%A@8S>TqvA!?rozZWvA++shUy7&HN{O>!jcyE}+nPWeS zoPSiG2WMW&C-f$!k$s@?G{REJ%lfmYk*g2rNh7R%v&D}6;T$5mmLlgL73`pLXzXC& zA+RG9i?Ab68v(@H9@w!joG|R*W-sh0ZKT*y$w(_520IRb7gg-wF99jQ^w^Yxhx&oYXo4NMur9DeY&98^h#lI%>F%K@ zZw&-?+&f?gGl(6O4m+fQ9y{o0mNRXF9dtL#na0?mdhH_~cOE-5PXoz%Ja$N%!;oEI zM<~((~=SV2`%DW%w<3Mr%5QRAlDFSH?G z$04X9o-PzSO}d!a(Wi?QJ7(9#>TKH4`w=@1g`+xM*e`U39kdXzBkly&Vc5aV5<8?R za-sls+?TZpb_DhO*8QNxz2V2>d27rQ{*Rvr=P7Hnb(mC%d(3l2-d}RZeUSz3I1IwL zci5-8<`jQLgzN_51pq8?lU%X!GRk! zw{azkM{^sS(`>~9(Lx03NQ#_)RIq`{p|OF5hrotVEW(CFZ6kQB?STysfD?ud-0X!7 zrHvFDDj8{|!(hWv@S=(hJou{EKnJkyGW~9Fmytg$V#9+dJNH9MY}h|w12c#XlnxtM zuEYlUy#O2Z*Fy&k8&VGy8=Qv?ut7bX=pGBR<{_|QZNLU*5F02RHi(BF8}yKkeWlK@ zftw{Zl#b(2KN=ZLu;DoDXR{SztI3!`Y|sWycOQ)M)<9sx0RbDBL2RIO*dPt`*g!|K zoM{tmpu1VlG{y$iYaj8r^Vpzy8c5dTu|e7#hTH-hLXke$5O)fT7&g!i!v@+XHb^~+ z4cxK7hGVdu<(f(<#RgSK8O4SgH{E`r4gIh|>@?|OVnd%UR&1DE7pt>rM<>|OFLZ_t zv=Fc%?gZ9h*uc#a8>A_6qKL2|s0(Z;x#2>4kL>r5{ynm{*?VM9O5P*Gl8y2#HJ(hX zJWG8JbQj{kdp?TitcV-#jc2XDBJ&jwK^C~-B#7GkEGHndI$x3HCp!HmywCD5n8i8e z;S@RlsNQE`Uf>LUK8juz^BDSk6#XkS$|4Vi#xf~eCg&8ClN=Gg%SCWhT z0zoeNd!z$KE~$q~F3!USmT(p7H-N&Q6H4x--pFl3mAh}RFa*+mla-pMH&a?@+ z(A_L&8k39awU2n*d2-P_4J7OFu0C?qZF0<=mbvEtj zgK@;PkAR~(;n6R2MlQ4v$R+Ls)?wtr&5~TCDRQC!xjc}y$%IEx&u<+G?VWX>g=ehM z)={jH_gVb&IZr?qxaElu@$)&SL4)sSNctp6pDgK9khX3f{Co}#^ZA^oQg%*7%I9+q z;SZMIBg2aIQ1SU3O80yY%T=DwaaA{XKBvBFKA$tVUUs9r(;$Y#_vrbYpl#Jt`2iIH1Ukr)wQT&6tVf@+pn)p8pS&0AH5OMs^fhNmyNjs8uC4Dy1 z))xoIpN1L#=TLUeLdy8#dsIdInZfu|y7;qPCH}7J2Jx@2n(-f8ZyA3vB)&)S59)^T zXX|U?|6F7t{^vo&@qZpPSov1c=S%tmNiRU!`qJR|(=g+IA!X-Wq>Mkl16IVJ8H_)r zi$BX%;_s?%5dZqB8UMlcmhl%u;(HYTpl%p{w%)~m?nrp2>V?Qc{4at){M|cM7ekZf zFP8Krl3s$e_2t2lr%6WsQp(PYkTUZ4R9+EzW-#)UF7hl_iM*@2LFDVJX5|X{E$Nq9?uqL3SS4es#($-f7$DSq``&UqQ zUW$~l$7^au?3uyXQ@Yr*TqX9d>ISi|ubQzRTyGhBF(kf6u@CCTv1j{T?B|Sp7vH4* zs?671g)GGWIta|yU|MM8Ow18&g^f?*|GzNra~tM%viutC&}+`-TBrZv8JM_`ciOW2 zl}`Ve1+kuB&iwWfi$~_!)yMFUsk{c3aN+e@ikyFx%K^=sn%CM2?>R`GPVdZ}oI9h_ zJ8Y0n=FFX;<5*SHY3Q;!xeY9!lur1(3j6p8AJ&QqAAX8@ZfjfYY0a6{gS9m;#L>fO zW=AJ{=w_teoF;s(hjZwR*HPsBV`j}FbpCFLOnVg)Rn|=Sj7^P|-<+0dGkHyp+Tw*c zT1+Q=un_Zxr6Q5r8Y(n?Ja;XV;D-r5g_*Ic)LYToia7EO(BSbq8zBP-fh z>~4tA|_RQd~V;+~Z zld*SjH_PcX)DMGt{pc?1Q5!XSnCcPir|*>$rzoOZT<9dD_fY#xuk)v!h3v*{*Um|VK<$=K-}ceKy8h1>RT zp-!l6>K0-l>wX7_Z{f0{h4G=rDB6S?H_3#{vy~gPv*fpk3AOOTq4c4si`6B-;~o4) zaek;ml4_kwKUYyvT|7nqUy6Cu5x-}HVZbZ^0bcaM;# zbN4RdoDqK81K(l8>F;gGLeIYoBDqI+H~92WFlUy(1DU;e^PNt=3GWfU7iMv)eIG^6 zKdSc#nU~%pq?g4VLA^&v{|b#F-RMsG)|29WJM*nRN7EY0|_qREue1VLiScHs;+UPCT_CUt>zzIV} zZuYuISlUSM5mqwNN{6{e_(6D4g*qOpRj8u_S3{vPRoL0#&hLY?!_L0#RqIn=|6?nhwOJj6Z1BkAEg zglm|=dxVq@>cm5Tk5CWU*jMW89w9f&dxWLqIMhFcjN%^Q4LG-A`wKXUuDwRLd0Sv@ zzpuQ06y*)*q>gl?ulr_)HhjAKF_gE4Y`DIo#SGp%q;xb389JbIwhJPk1G@jxeS4lq;zT`1BA=;F>|5d%89VL(UwBoe7d zfsQ)@=&(}Vg6@sj#`=;=H0ff(T%Rsh)R|ou ztFviGA2ApA4zX&R-8<|TIzt^=2=@--PGB8|I@~N#N17rh5TFj$Mzec|L2c7t#k0~2 z@Z0URw!#C9bLJ$R^JZ`cdFIQIDbFkgtK1F$9nbJg7R{l33He_Wp7}Vkz%!qQFrIlF z&UAB7?{)b94dIzjBC{9Ie9GxJ1vUi_ip^I2qj z@S)MMnbG?Ke8z?bpB+&=Jg7ZAXL8PrJ|0E)0^>-A!VkSnGHUT>dXBCkHP_B-wuaQ) znYp;Sb~>@=){vUp-WicyzULm3bZBSn+};I>HDj{9YVORgP)UMm!n-4<)k1>#=XJY6 zc5jA@=#ei_AkLqBb0fwdRRmN9uEM!Wf8~%0Tg#RZANHf#}Psm5j7fD*)l9%?5l~^^5Rg94lFl zo3mlEj5*p7Sg94;mB}*kr}<jn3_ZMF zxQZG4S}UdFD)G>NtyO;qv9Ht_S8-FhYF^eU9mntIOURgoNicA9iCS*lMLD@)C;i`Ch*qdiOE%dP!F zXDmev;mfUYC$J7f;wR-oZ5t?UI*!)AOEzm)N>P-+662` zmO275WvNS{yAJ;yOY!U#vD8nH|8-%huOkaA^(_cvsk3l)+ZOe{7yo}PEcFd!_F}1T zI{l_#sVx7tvv~OZFeJ;}&2{%AS!wR-EkRh^t-W_3tncA(oR7Xwk@Jr#VKFZyEVipa zC?zbmsL=EvtnVP(6Bdn*%{&H z%+Zd>a&A`$OZ;h0So|ea35!OsSUb`tgvC=23G2s{om-KTu#OFc#S9V_r6VksD+x<} z?I0}u?b87xtkgp#EazbZ!cq^HbbkV~<{=2{xIkFUAYoBD!V(WXVd?K6_LVv#EN+&B zRXUE}&kvC?Tf+J&${1mZ-6q2?Z$D~dmv(=K^43@o)`J6KF@uCf=?F_2>j{faW4U^y zO$dwbW;xTCuvD-8#Us`emgZ?tS&t_yX>*{Hg0Mo7K7O2&-S{jId}S z5LVm?tiuS4nGNEqt?FcKN-(U2))y#c!S z;=f}op1&f-3iDMzM-~|CR}i)HRlh)HFUI<%({BpK;(XPwVbjf5@lQWr^*j8HbIta`YoI=n&M_JnksFiG*!t+D;GBk9h|c9=B}K~u*EnqmfNiqg@Pc<5wZS2zS-%#Ef3z|A1&=fOBQ@bFT^FmfX-6kC z)h~2LQ?w9hD((cc23d;Iu@uXdEG55ou$2Dx>433R>Y=if^RNL+sfSCt^Mi+A zsgnXrF@r2c=~zlU^em;ngVY;(9m_e4JbSx!}^(;lF@!cq-O<0QV;-fA|W0q3A_7{&>&r+JFL1jIjrKHV) zLkgA(Mf$K*+(9g2EJZhrrD&flCG{vvamRwC=3yIOppjHcDNCtB$|y_Kxasx_ZRp2R zVy8(LlcoA}v9i?cx>%h}J33*hexWm#qJ_XxaVM}2V<~QyEG12mlSaf+L4D`46wh8Y zEVU4BgQX@QYFTO#GJCPqVyE9!EVTqS9ZT^~&r;L)8)u%S6gmH>vJ~@DmSPJEa#EI} z?}erZOHCr%vlNYv&1`@8MzPdhDBhE$=w5%X3u$1`I zoTd0nsInA|WI6MiuoO=+WT|Z_J6j?pOPw58iWy`nO2<+xSF)7++QCx#+ouD@QmKc^ zQqIE$ETtYU>8^lT^AIfcu)tExAWKm?mJ$y=OX=?*_LVwgDQ=c5RXUE}&(_G8ElX{O zGR9J3x5+?DmeR&9?QW0q)>yFA!vjk(gDgeqSV|h}S&B|)InyRAMR&8DY0Ofp*Z$%W z>sdBW{|Kb9bvItNm%l02Vv=NpAHydr5-9_IS(5UmU_6PyF1L9hajv+2Et+n35(JZ zmU!q1OMeHkuhbb~akC_>(sBHLRv}}ygtZ6C7-5OsCc`fYOB=hidk>Vi#)7aO6$pzN zBrHltSkhQeSadqenKmITx|`)pW5QCs_7{&>Pgt6#L1jIju%yj_P71;bMfwm{+(9g2 zghe-uuxOuzCG{v_amRwNR%08VrIS=jDPgHX$|zygxasx_ZRkf>Vy8(Lld$@9u@cto zx>%h}J31k(exWnMqJ=J!Jfzh zW9dWyA7nT{tItF_ovlnCC%jq`>W9hqn_l8-VU-qNO`A2mf1Li3) z&6}KO@AlD4<)eA_ZXf+CH2ONmcr+ks_;m~(jpAV%YSFm8%twC$2|=xZ zM5iKkEgmh>_xOr4mA%I|XV80mbL>67)#Ky+-{PAS-r`$iFY)aU=Meg}6gmH>pb?cr zuVcW%DH%0b#~>7o$S6@8q{P}DWVA1wFf!t%lFnA9thd+!HC+F?e*KnEOB_A9sUv6vJ|0yulmnq__!O)nul1&;4y(>m?0l`gLD)l9{P0*^pKUa zMd>SbMlsw}ikX{rO2=`iABc=%9RpjtK-MvE@7vA2I9ZJ95R@^B5xeOSSGRV7HWnXx zLwRc~)-HH#pcrPzhu$C^#YkiQ+68nPA9_Ptp_m?P7tmdN=nZMSc7f`(zjzFKiqSj` zD(mqSBW(@@P*6-L(uZQ=4q_3b7`kB;L;Iu{sYfY>I~Ejk5VrB5H%X6gmH>FbtJL zGYkt4!7!m%#4w54a3a?BV3;G|gfR>^dofIDBW0LMMq24G408;;s4@%>)hff#0emcx zem7tk{Cv5 zV3;)z!7!%;hG7O7hSD*Nc<32M582pP>WpEySu#xNI1cp(A!D`-^AMCVh7r3>1~|^d zXk(|l$D_P877X+Fz%a}p!%#Ygk;Zz4q0?E;v=iN0o?xFZ%bEcvAPWq0GK4YAtyuW-OaRj;=3?-TKFq_Mgv^3rUW&CBZJlzRHF-EP zaV~fSMb1B}U%F>rAP!nkn=xNJ6nlBTV5za0w}!PIXFi5)%x6%TfgNzASWH(;Zp;M4 zBT*Sz@hFO%e^frUM&;0hHwzCjc!y%q;GL*#9F4U-2JeT#2^+k**=z7FZKQ*DB_pkL zn8Ewe@S-|+^Ejvu-gE#TTch6%25%nK9K0V#**Os@2k$3vwAfD;{9y(MZ%Q|Kvs^iN z%fXDnTMunIV1sw+p$^{8!v=%5dN|QN1!m1d4Bn^G!z=OQ!}r3F!NHr-4c_9RAH4OD zjeVug25)YbgLmmT4)w<%qZqvVO*%Xt``Lgkwwj#HIbdr8r@K!;d21jB>?ei+n;9Ii zDcyiA4fF#x9mV&?kTw~x>28)YjR$PiYaj8r^8>c#X&_mTAF!p(VX!L(>`tqln&UckTN=8*SP8S3vCDkcJ=G>Vy8(L zbHMJ?#X4Zmu8Y;#w4;;H#P$oF4cN302JE;KSceVR+$;xdX^NaEFkpwT%LjG&nb`6> zv7;C#PsN5zV%pB7FqoOk#+q@Q=V2xBSd9o`O^&O6)=-6+On_YOKwTG4l6!p38Hq)J`I_*WA;;!iBrH+DRTZ%9kZF2j@h&skJ+a~D*`iQ0zGSleUFelnb}F`Jvc#_ZBYI%Zcg z(n^OJv(JDR)iImLL3PZg1Ni(O{cbR3^Qh*Sy^gZ;M5G+EPYYu$PnZYre(v8{Tp&zsLkd1w%&c@pNaC;K#bW>3S%}iIA&A2FpF{nZ{$b>a~w}-1#wE^E8mG$B)_4<}ltBV|FOgXUvW}g+*-4rW-b9(>}*+ zsYl0b?pTc3GuXyg7bTTaI%cav%IKI~~ikyE`$86@MV>WHZWA-`F_%WNM#%8`>H)e~0O*Upf2bG}}&!x!uM`g^W za_BLeg@+ikL$PSgPSiGh#@ZfZb_Y(_n9a>zV|HmH9kVMLX{E!A+2_KG>X^;rpgLyL zfh=cUlQEk|HOK7pDLZE&<(U2CFlIA@V>YE5vstbjv*lpMn5~C49k4Mw^-#xb=V5~} zTRoiUJ|AYyLyXx^31c=hIA&A2F{%q|_rp?)4RnvB^mz)RnbdK5D!0GMr~rtz4qdhH_~ zcYe&)JPjo4@ng2MIgEG3m>r7r8MEU~VG$d%>4uHjw9heH>d`TqJ7Ub1kD5OZ+gYxu zl+rO<6;ejW>>4-SexVIv%&vaaT(2T*>$lxn|5^aQS*MGvoV_%!k8U* z0_(6bo15jBElrUV1;*^~QS+d-kDB8;xmfG%e|(+IlUDRy^IK5&tui-$A+i?CTm8r^ ze-XCufm=y0mh{C)@iDHKK(sUYrs^7ePHdVVK;0c1i>5|fdqA!^AX|B&zrBG zFPxss&svFXF^cu^AB6q%JMlq1);bp2-L}9tX0wrtM#e86;iC@tH#Tz3Ye%-(72l}Z zN4*+t9mhTSefPN|d>jc=kvK753eOOSld}A!*uuwVCA}OeBJgsE_GtL3EF*AVd~t#i zz?YJX2+#&1a0Nx@GNg<^+af?MB0%B3C(9x*f)CF!0{FCHT?E9o7)1o|fkBHvP>=D; zdu*4+;Q1rtF9|Vt`L$&X=+`K}x8q}=$HJA!(imKYtt`J<(rb_+2G>Hg=L|dwXag~L zB}L~INEw4OEC$pf1{CfnV39^gf!G$K(NPf8b`%VZ0sV5v!MqXv9`rc44q5tpcr~{0 z`AA7$E9vz}5sBA9wC4^y8fXcTcs)huRY)0$r&}bbMI0&)SMZ`wirbO z@M%0dF9h{i>ttvLpBL!YXzO9R?}~fO8Tkx;6W^2=yboE3!EyNH5w^1YgGkZ(4?(o& zOY0wwV$%9YV1uoHB&4;TrP2BuDLU^*%GN)_T2C!nPqAUyTZ-1R2#h=$M$r1lK-9Ee zY>QE}{;}9k$AzFCYdsEH8yB84GJat=Cth+zc}}EPqpef8C&z`+k&l&a|1h%9_9O9u zDr}+EAA@L*4{SBdq17L!=zIhzTYaXrnp(7)!nK-38ns$%i_xgnL2a!r&Vy%G>yMgFSyLr1d;) zAO@eK=zJ0>WAIFi0kwz$#fD{XFM6IuVB|CyLC>EKQPcBcTZ|$GPr`oM^FckZi8qq8W;y!LLAmpbiRX>aX8!JKrP}x;o`s|jp87-#b^|V zpl%iidQ}sLA0kWR@MCOc`A;PMsiZ$cia7inqP=)v9B2t~_&Tpav0!!MA9IN+M$SJ=Wj)sp@ODI)M&i1x(52+#&1@H>jm zFOf0=xkZ3lM1aCYfJGWbKx~WAC;~xk5h%uq+G_^-RTG2XBTHlOM{HqvVM+gt6fyV< zM0?4=7|;e{@K=h?ACNKz9g6|AhyjI*0gE(>f!G$KQ4E5*X$i-DdW^}6YHWa;nW zZ`jK6zf1ZLN&kryk@y!xdr~6N?;4tx5Q%?NbnZaPNOUa{)FKiT?&^s}5Q)Lp&|+JR zA`;;mI;fjnL(?mF?c{$C|3Q`>3;)Fy)(^c4(=Cu90vSYmYT&Uz8;HOti*`2P4@ThG z76EDz0Sb34ut=k0L2QfB=vWBqrpE&PsvHY?{Wu4{>9H`6O~}V2oiFJ)Qbb|_M0s-(ahRs)EJDgS-~&@KuS6~4K;h!RB8}o8w#8@^hoEj22YOW#ho#8U zI4s8&mbsF2Ye~03ia2Zw(Oxz%4zz?gtf1&DL&`XuYjL0!aiDNI|1LHtTh{KK)o$Zk_4(C}Ms6`woTpU=W zQ5?j!7>(i()Xm~RuWI736S6c8yI>3JS4i5DbXTN^!)_4mtp>({mJo+k6rG)sG7itP zI8ci?P`Eg-NTWE2Z7~|fA*h?hfnL?bVKuTe4!dIu3qeSF4@vh#ia6X8qP_LNIM5Q} zuop#V4N}J8e2W9Mhy#U-1B*0@gV+|MQ5=H0SsdtRAxEdtac0u(L+EYc_fVq1(x5eRCFz(9tiUo|mUi!6=7 zf!MNbCE}v9UB-{{V{4eUY;D7g+15Me8ZtY!i#1 z^@Hcw#I_hk>%$ydP&b=nqgQUO$+!J*WNF(Uh%LNHh7@f-3ZlK;z_znA+I}=e=Ln>1 z`-RqaYSDHI*LD_Z)ON8gMx(X|b+fk9t4iB-p6wW9Y1@y*R+b-!6m5SnM0#Ny1{yq(FX`hXJw?*TBW-Ox zIQ}%u_&m+@Kq-RR{Or))C z2gjd=8UJTdcFsV`_`f*BpBaolrHenyRpRfeZV>*5p~Dcg*n%PSYylFVd*tx_iiT07FMosewQ`>p4}XY|qYD02Q$dG40V=($_* zV=Ww?oCOyf8oA0$V(S?YUbC2D3C2cm$SyH+WZu zX9qradjVzVY@~ed_9Z-t>iezC;B&W>?zvl*E1$cSpDG^j(jP7(V9(vA9_n+q+`&9- z@Z7C>IMKb3rPM<_cY6sv#AGl|Ud-Tgx0LR=Tk+68cdLhN>??Kl+$}fD=Wa{Kai~8Z z8BLzMeIfR<=WfMTlZP_-+^sfny89xOw+7<5+e_KN_v4K~JTr(4K6gv$p1YL>`sZ%x zXqGdzV`UE<5Um$xBdex+EUHC!vz%%C+^y=hk9geq=WaDm1Ic>)bGOpw@XTuQ+-)e* z=egUsQ&_~FyOm$lECZX!`9VW!*^DZ-@^13#K^5+k{u!MfK1ww zWZ}@c6rz@WUX08FS3LW?#OXczT;lYbkbPbTvpCsYPLcDED*G@mWgmK9aE-DL{Vp`h zKJ>WIDEnLnjb|TP9-BFC?MAWBb%2*1>_ZP7u@tL_(#=S%>_cB8_2$GrFNbsJqbn$K z{!w8cDu-qt79N6qLa~T_618DStnI-*FNG7vKHTiZKBbM6eJUAgrNgk#mGGj_Z2#oOw;yhi3<}&()Nji;m3S=~4pKGz7v5(kl zGBA>Tw1LyzSE9T%5bSe#U>|0XeJCCKNCQ3l(9tYs+Jt@RE*`c=8nch;wU2n*dG^sf z4J7OF>?3Us+)%JjDAI?0;!a@^V;{O`xLT^FmfX-B`D?DH%*s_fG*bjCik5ZEW~ z1lD2f!_AU?q$zTu0Q;Q9+Jt?AdVcF{XzxV!;Yn+>b&gg__IWed2kW2XgmfLUz&@{q zF!nhLb3VVv{|>n8-7@dEB?%qgtf#Lli*Ic)L3UBZ&np(JF`RQAXtkAdk5bd|X3-i-W6!EC9!V+7T<;?T2 zw0LT9>o8O?y$D}{xj*aDyL~*J@Ov_Er|i56DZeLkMSvw{@Ov_p4whK1{GJSd^Q&=g z(lY=ZFjz`GR9JEzI#`;Vnrt0K54j}!(dr>@3aW=oy6=El^AO*YxiY{KGx$9jN(W2g zq5qzY9NtaD6Yn{LbavAm$wSj~sZQ#=G zyHMU5h;PWeBES+e_zf9K2TRgG{|y;BiZ{!U+OZNQil!!~aH7G-VopZA>yAUxrMp?q zH2#K+>a~w}+<92iJPjo4@vtOq4xmxMQYg{~mf}uf5rZYVVX#E|ge9p*VTn5emO2hgCM@;oVuhvIb+I~|cJx(*rDwxY zz|wL%5$PNoeT_nAutW>t8!~YxunvPIZW5NZ;*5|qMNSm>hRkzVo4`^~&u={!TEJ5A zes;&^iGGsI6TQafiSV_gXr5>eScmgOcZW>piJk^s2mjqYdY-dJTe#uHI{6M#xJUnP zWPz353lZO=d>=Gf{(eb6An6As{SeaDioy3NX_)sYZ=~$J2PyASUd^AZJ|n>l-lL>+ z_b6Gea*xtg-QXT&ebu~2Ik?{P9;Fx(-=lk!LEZ2kC0p%a+UbIsvE?=zG}vQaJ^;x z#gO=_B)wVEFG%`Dq^<1-$Df87|1VK?K8uv` zzc$358H_)ri$BX%;_s?%5dZqB8UMlcmhl%u;(HYTpl%p{w%)~m&dBp|e)_&#t9=<+ zi2v6il6mTraPE7tT&sN*nZ2&nZgF})PyIEg--Pqj--KDP&bKIX{!yK$W?r~})5|q_ zUtF%~JT?6;G&)aBj|+`nuH6cazg(l`kASaj)? zsO>5!*7msc`Uae^OD}Hrnx`&pr1R93jI`2W=Bd96FRGVbJc6s2UUVSKnddLPc*P}` zUR&at&s}=)?7(^IA5eC_f|T>rujEPeFihuUIWss6Ln@mtM|8cj;C45iIp^qI(<6nunODzK$MV517LnyU5@?HKn`s5)b`6wH~r^S}A>{ z&Mv*USzdaTj^j}O9x{qcucjZtT8}bz876j9Mz8w_mNs^}`$Lqs#$wL;Rcx%@uV)75 ztSQ}Pm^9YUS<`8}-;A_!8P?-|J>AW6rtzG$>b1Xk4EoD3&C{T=9)B4oZ4Q?(#bsD1 z(&sWP?jRPi%P_iOmtnNeYYC}GFT=PaF2i=lbGF^@V>`<=l~Q^crV1&emti$-y8S{M z!e!Vls3N`$6FW`1n3rLFx>zs6X4l2)Y}(Pu2PFE1&Mw1fANQ<)EJ+vlj>b)agA3{mkh%AqV{uW^v;A6-CZJsvN|;l!NGf!8po6^t;d~2hrm~ zqa5^q(0C4_<>ZT5v*)0FPwdG-^e`eDv^`ymbdS==Fhvm_ZJrbQ~m&^&CW}v7QssCLBa}vz%$nL8{mO;xXts zNb@wPtjBYZv^g+D!9k%&9}bE;h((Np=!S6+?URF~9_1kJSa8r5*v2wel1eG%AXP{i z<)9ij-F~4B{WwVMH0fe;P@gVV4w_vTtFviGCmhr-bjCrn5I89A1lD03#Lbd}q$zUJ zh&U*y?{p602`u8E%gXy=^WZr+Xdy(xL8o9Y>MFS}HXoV2IB4AIJqImt`c23|i(wWg zo(YPae^fb$c_|0c`+{+lgXnjmQ4XTVg+@7OOK3a?(el{LIry9@Zc%QF`F=Zr%<8^a z&AY4gFd`e}Ai5c;m4oPOq~4r3XbGG{A5Bu^{A1=lc=B`IZU|U=mE0wva%c`>;UPFE z6pJ`0Q5%xP+8!LV2u>IWakCc(l{Qiis$`^<4#PoH@S@5=Jc6qnLvQgYB6IPe}P_r;h&4x)4%#BwDE$xjs=q(59bU>uZss2t=xY`{V4;Y1e?r4}B7 zgKnUQ?~waq%peC*It~&KJqPI_8~aL~aS%644k{hTp+1d_f`e|r%XQfP0%q{n+C4Hp zgS58aH(R$td1E4}qsf3tCensaceh4)>l!f88v_$DgG@x}m`ED#nTQR@a;8m~i0)$b zKcq1esb2ez$D?N=&C>w09?wM5=D-sL6NMsum?-Wn7BMEG8^%PmPbQLjl!>@w!9+{3 zo#mQJDP%8?6Bk>*>CI~+2S7e$WDOnl=vPQPi7Glg=dAfK^Bc9 zXq1UoLgSf;md9ppIBcVs==O*9oExHt5#=Zo(alJ$OhjKJ_2$GxJHk2i(M}XO|ESCj zQ8_ddvG5Q~6pBSml&B3)Vr>s5x+|P8CgNrDOjOB8D;^2!B$wAuK>Fz3&x5k2l-V!*78RQ^J$3fCq&p~uL%b7OeAi9esZjr_uq92AQ5;h?yKSj0GpZWssAJ~>G0Q4Zpc1qa<7+gQX`QYobz zqzWmc98}|`+b^`C9|wt@CS6Pp>eI!_L9^>(bvEtjgoFBp&Nzq`0tdyNz&ebBxLI&kFGbR>MK7kp&Lg6QY)bc1LC}4%)-%JqO*x={F$<-3w-M;@O)b z=O0xLVqVHY^uAym-BjntbH2kisr&`0}H6dV7YSo-GGC5b|43>rR=OhN)CE!;2>s@gD4#bv0TYP z@>2x|=?|9<7zd>uDhD|a8*q?%IMF=-X3axz(AxqBF@qdL={QI{^cq{zztDz$93*y{bTK)oPZui(&8~~p*|eh*4(b;=;~-iH z929o~>o5-DX30U)6gg=`92C@dItTFtR>MK}K^8dZeh{@BbOXqcPQM8` z=m9W`6VKrkIsd3~5c5(FqW1;kC_ zFb?8oFAgegq#RVqNGlzNgN}q3RSx12T;(7-fG=0j?*<&ivjaKk7|PDUNXbF(2pq%= zauB8CAeJjRNPeo|ApPOe0pp<5L**dnVFM0Q4=1`0f?4wr9Q4k>LChcrQ92G14?PFz zAshQjopBI1OAaa>$Dw`{GG@y`$D)jJkl1Z9NRorJvD4k-P~I8~4tiJMAZCz*C>;k$ zV?77aX?(l`X%h~jyIIaO<{;H;fAJXf9He;~RMz7;NZK42qTrxVqz?zh9mFEWL3G17 zi1x`rQjc;FcPu#QXl!S>rcz2dNEK2>IjF`>w_j*OKMoQ*O}dyI)TfJ;gJ##o>TKH4 z2?zBHopBH?1P+Qjfpr)MakJzgX^NaQA`S}bJDr1g0*g2ZUt}ElfxJWiU}S-VPJ}QH zx)rM@pNZS-qj(sA@2q9{@yIMV=%sjCX5AHAj4U`O)79r6icFjiPNvBD2fi1TtUk}Y zKqs`IHe>QQ0egA!V5za0w}z*4Wz z-_FAZ862}I-Iy&6^kX(1&2pwq#%#Ka z&jTTi$86PWAMv>JW47jLAX$$ev!%^pyer1+P^8b89d`Y|N&8j@eR=j@jH1 zW40{2^(bs-xu#M|$81$d86C50+;sbeHiR*|y6l$NY0||Uv-@x?8tHH;OUYt-HmOR?w>%chB65?PcC|n#^q){Biwiu1#5Y)}$K(A`zkRwau(8U(M zl_KeLBz-PY#Nk|s_6`H%Kud_jc@&)vQpVwf76)n(2MQMl7HJd*u`NcUI0SXGIMAy~ z9Bz~I!}E}(ad@{A=-D7IGl&2{p2Hs&%?$dG~s;6H3!JY3TX*( zco9YCe58!Shb#`%A`TQAmVF=_S&=Qnpui$9@&Xvya(?>)h=uF#j#XF3=dYeOUsqh6 zp39XE#kLql94^Fuy3%1#kF{P1?QZ%F$BRbBFPF~<;w(5ea?NW;wy|#r(yP(di@2w* zPssD+dWpkD$kI5x7+YEX5=k$S^irgV!(|Zd9VHGI!Gy%&Vr(!DSU{|Z11%vAFQw>Q zjFfS>(c(ZY;y|%s*^NaUSOi8cff2;vQiz&3h;1>7I9!JPYt)=NaTpu<7UJ+jiNni~g*cpouP@MOeubo0O8N>(uR@AwTn*9QNuqH%3`sOzjtxfR z3P?LDXb;i2hN5#hQbyy$77c0<4T=rRK3YVBMPTF=FoI~{6_mPYh;1>7Xk3l`G#WuY z*185-v{8?X%SOhp4#&l7-dG+N^lP+rt?tWpE5rDCEwc2uxDH!c{whiTpSdf6w`ywN z`wVxU$8NXjHmIvfDnrVY(jaLblqN}~Ty6=Sd$~fIko1|pB$bc~Wk^VrBnb)WBU5DP zGloq0zt8ioefHkxPN(>PKmC5KcR%ah>s{}9*YvEt?>T1?(|aYANGujnbX2wL1T0A; zmOzx;Eh!@LjEMwtB@z&>bpk~s68IfYi9{C>m5dA8rcuv2;bcd*PQa^j>xAx~OGTw| zSSDBU-Qr9iVEUk>5{Km?iW*lN2UwCgJOoj4pQMPxvnCG6l{i4S;(#Ji#eueI)Ds6M zJGwZ)t4iXqLR1=uRdVGIJF;^1UQ7YBG%NgSRLmBwMcT*()yGTp%Rc}XP>FNi2Q zy4pCvlEh&nM9H&~A`Tl&9FQwfI6QCSfLw_Kgewjx5>*^%n?^lxaI&L|1H7sv z4%!+#)3-jWn?*l6N_ zT!{mOD-I|URUBxWMm=$GvZIRwys9J)?}$ZzPqre=DNs7`DACHjUEK_U|A{{wpckzS*=LxzctB7n?>AX?yi- znzm_F+U~GvC)==T<!AE^$X=O7S9ny;X-+_)FS7qdqfoDPUcQpfY(iN zg`MzAzLouq4wY5@O!7ggO`d!I0ucfz|Dp;y=S3A9Q0Kfas(zBY+%Kw7D&p60=*?k$ zjC{-Rh(D3pSI4fsffyvR|4xMXGpd=Is;|F)z*FhIwfQ`*>-_ zdi13kZj_g1ZSW<@heR#kn8TE%^re|*u#CPmtHe#$eNG#kmu79teMvIyMAOB1X;wuS z>r1o4>tb~_vZMRO$ZypgCywe5`&AV>^U@3!oR?Px4;|ouaTzOV!|5nXG^UiEo!28auj`{reZjqu2zcZ7cy5T#sB_i9n@>AvdOUXMZ z|6T9Qux14cPt-c`yMEwkcaoqolmsOON84&R8ghlBK^)2%Y(Mct5iv4IjL37o!6GVo&PUrcDje-xxlg0$ zWXBZ_kzDiqw^EJLtsk^xzgC@FrY0Ysv5?9z=DoT*A5|K>#ei=y%w~2+^qDrbh#gCsYtGsIbPD%CkVi3pTH3SXOcli>a z#p02M-^q?Il+h+PsHA>jQ;Ld29H0lH@m;WG~DVmBc?= zgg5>@FB^qHvVXR zpl}6mmH5Y4r%V5Q!uZz`mBhb}2#Npsu{GN7lzxkoZ-bB=`H(o%0;csPEgZ_oca*8b z$e)1=#H*8Bn8?E;G_6C9PDzV860_WG^F z=BLY9GP9Pag{CK3h|7g1NvmqySS$@ZDz{#PyNmk9Scws5O;^XcPNu9Lr}~Jy|I*2{ zg}5zU+!7)LQ0`=kOwY-bev~_zdUNfQDGEn-GG%%DWasW2|&pDyM$rRFcGDW%Y$rLjkzoM%19uAn3X{3jGGIed6!eoJ=8ICsTUpKAGx}_4b$+QwTUH3U{a89PHqzW?zPTPSkP2Gs5i*YioqKn_8wZrRTbvCl2 z-;@zk^sqRpC)27zXHKTD;G9gooq#&b$rP92lPR0Rg+flI4ykmq4XL!xrNsgLTh3h~ zGo`KezuSeQ;BPtQZ0I?c{wlnsq2$+zFMlo_EqTTA-^GuxVpYOTj~A8DffGe|xoJDe zkxwl%ZO^oWq=n~I&rM+x-1KC~k`p8aH{FS;x=nnRPj*WdxGAKIo1$DfZtAK!3T|3? z)!?Sp*Bj=hG(_J$+|gx^1o`&eVC-zQu)UikVU9k^Z zC(69|l;?soMJ2KCF2bA(cFWu=30hX7%(>HKe#r+XMOo3gpqnfIZ#);AEoNmW?FkVA zXg)6TPyk)zp#WamTwf0b@XyXs_J5Y-xYKQ1b7 zvwt|{$*z|D{}1{4IpUmzz86FYpxno&k$J>?9fgm8uRFy&d_5xDP-ky$1$@1SIAQoY zE-T{eVH=Try__Pl(j(#Py~T_2d>uozJYRC0!&1Uw<2`pz?Jn zz}F#Nd>!S&e4R5;_`1$VIAHjCq=(AaT^>fk*VV(c(*9!Bcqn}R9eAjG9SZPuNEctH zhi<;EL)Pmn@(f?cWtgvr9hafrM-8omy9<K9 zU-xzjiWt5QHw<5geeiYGqkJ7V+8>$jE7$&zrYxm=T{Bol`FbU8y6$t@;PCav@)Xd^ z*J&r3E(Tw(qKn@o&pW&>R%atSI^rYKRfW#*by#rty0;ThhvDnE4D)q1g$sq}BhyZ{ zp&T|}PZX{&M%s9Z$V`#;zhewv-!D>B;rB@L2lV9YkBe;M%1@Q+-z6_mc!`UzW5x3D zmY?OG&&XQ_iAs3O5D|vA$onO$z3`To<^P{@PLR*2iLyLzac!rz@{3C%9%@$k+;W(h zm6c;SLquaKO-xNDq~E zxIB!4cBqGGrDMdb@la^TZijY20onoSq8;?mO*?eRdVNKnp&hsk(~hv?GStr(MKrYI zLb=b-4%&)lPXg`G24kp*jsD>T%N!w%OUTZQ9`!se*QRI|W4y?SLDGcECPp2kTMVfg6Q(Jc`GJ zqvhHk(v+o?c4!96DD9}kP1k)+8ywoPy4+(z+KHx%K|8AGVx=92*Tw2=WJkXzBc^Cg z_%UHsp)<4t7985)?F7_eXa_FCw1Z9ILLs!{G1SICU~#hJ3xzS@-ScSK*DcxOB^e{~ z7}@jPyyNSjJ|}!A#>+c;3vXyB_fHlX$vd8wyqD#FP0=4M@6C?a`4T96f>p{p?4Tu= zhIfn;zlC>PB*O5HLE^)&@_&ZZEgvzm{xZL~SZvD@Q3MeJXx=&U`3H0kztCqJ6C}^g zCU8$&@eL>crDq#UFNk0h|D>lCmq-gGP?ti40Lsw@WF9eXK;a{x4Nfr+ZHUM=JGeKu z0@^T9oG`Qjmle^5u#HICP)-q9>5ZMaXq8>MGV4IyS*QO0l zkt%3|w^LBW&<40+XanqnHn1M04Y<*!4U^^CAJUYils0Gv%P4KA#7)%}aA1Lxc~mD#FhUyzGo>Dv$CdK0}%o!|DFXphiB*?U%^ZJIflMxfq!<6a*?Yf z$IV4xC$4y1+F#-#?Z-rL5&bJG_~Uu9p?_rsr##vJB<3l?i_S+lV3tDbE(8l*L_YK9OhE~6FamMO&5c?RMExCTn?{`)!E37j`+k*RiQJ?1r{9U z;_U>~VVDap!_0+E;X)zI#redJlWjh+V?Xcse}2z`70dN`9rxen%odgKmK#NQ|2F3) z$?=D7W;&PYEs_=vul{dyU=n|uGY_(4j->e8oKG-Sw^?{^0|ovz2h#PoIVe}|Z*yE# zNAb5gl~;|w&8fa#bRa*iLPPZ3^S3!pcGQ2HgZ8`Lak*oEtEeRQ{}SPi{cV!t58cl6 z4yJcXS~#Nm*ux}Ze-~uQd`S`ey-w_*Kgx^1o`&eVC-zQu)UikVD~bIQQAzCY6XA{hGRcvz$71>b z(+4Fj994bnVG^-l4q38PQpEldFqg=VzyQ`KDc;*&W@)0HdgjVHMBlgwT z8;(5<(RWYmo$RP%kM_G_AGAJ*x2(^3PJKvJ68lF)m~-l7LCdNUV_A>N|9x>-pI3^q zqI2phSH5#jmGAL#h77elwuzI9LQ|uhLY@EbrhQc2udQ|RlA97(iuK1)2|I#71pA@g)j|t(S=QOK_ zT)64U{wE!B9~bAOGoFA50hIe=LS!ECAs2;@;E?MS^Bi&`vdwwZn_IylceOZS4!O9j z=#U$>5qZchr--cdNDjGAiWg>P4e;xQaXb9+uu{DT)ysFwNm|%mhV`Tlk`$dRiFQ`e zDZr;nQhcp^bxGlAfTv4h%(*^Vgo#l82(9*^i{=Q8bq7c2b&w@1B*hVW9~Nl+dFBX>%kU98?6^#%wW6?((9!<#?=w=y9H(hFnzI&;)7sdq(r2Z- zX{;Qlzd&R4&laJ;aT?NfoMvO)$7wk24r`JjqW;~dW8PQHOU5w*&6t` z``_Ebah?@$YpnP02igfgYAE?bMYa)HD1Rq_GO6-^iR3*h|7*(i(faoTSiW4}K@haw zO|Yyl$gkFmN>R5mOr#XZm5W3J@3kQbF3F!`EHJde2h@Y zqHcc&$J#8GWHovTA_NfTSh1P0g*9Y{piVhfOh!zxzBWLElu^YLE5|}p>>TA-bdnq^ z#(Z3RlicIxSg19wxDS4eCZ;go*^LhC0~?imTpJ#G$dqy{xarCMCvmJT;+%BG%Mc-e z;uf-5Pil(Ix|t-JSqaCA%Zw|uzxs>ZnjgDHuKfXPSd8RY@tN_5a_h-JFRF)Hj+Lab ziy1ZVsdZ{G565z>G274`Z?4Odn)ZiY6ekSF!liPogl2;?6AF)$%Ck%(Sz%^k;qmZ_ zD}A2J6I&5ksmT{{0?M6;)`;PDB3mrnlPO=Ao|2hxD0dvbNZ>B{{=4@i+FQj7ol(uf zu`p_l+YZOld(bxda#l&paV$1FdX9yOP@ZF{edydAD_ICpXK6rIk}$|K(UQ~oE%I1< z{2585+aXJylQc8QU-%U^_4cy(_(M=+CHYGrT^tML#8OwWWM;f@ES>*wz;LWc50zuN zJaloaw9K@^9`G2T{4(&Z zz{MM7o@wr!Ix-pfReqCtivy*vOG(4ISWV=HoRyhX*dLx|W@Z)+(8hyvY2!0X-=IhA zo=kt?f6@2_0k{A~R;IrM(#5&h_{_qAFqz@c$S@5+GsMT6yT$6bF2 zPD}Q=lD#L;c#qVE9GyTqg58`;b!eSGgnHbZi*0uJip{y4B2{oMZ-=3X;anI-hI7F_ zb~M(boC`M!=i*1ZUzKZrNK=+l&ZQYFqnxV}H(mERZE!djKHBXX8-{n$Ry5rV-c?06 zKhBYMc-^cHM|QURWMJ@#b$+MY_3Vn*_}tAkv)=&Uv@wJtY5KoD=JX>$B}atC!gOl$>*i zsHErL77_8cCk@1>L2+1Hc8anhzWJ6b-{G5PT{-dxb?=H|59;8h z{a8*(B>b~;^lwkzksLQ=gq^tJsm|{g8t4BG$_Rfv+)ybaobqJyFy1$cWmpEZ4 zBQ7g?EEl#B`B<);BC^sWc`Wz7cwzi>JvhTqEl=v;fPASt{Ep&pPcXUh;Os-lk~byA zgR`%}8hVp5L4gNnkS!5O5B)X_utgEJknUSE-C9-QGa{NOC?xD53@qOc#F-7j0L zTyK>{w7q$Vwhh-+{q*9;Qr-|c))BeWXJ=+Bp#!sX5jt&nR_P~F-ZWeuqJ4{o>q9gs z@DL5sMd;XY_d_%^z#l?t#!!_H(crFp^Sz|rhiICweTVVrCUmOP0HYo^p<|mJGGr4v zr$`lq&f8fiVhA1FFoX{F!AMw-5<1){gzhN$U~cILaxLHO&y=N<&}jzCD50ywP1k)+ z8yrGc{gh9fs=QGE8;Y z6fPh_bqXc&`XL-A+q_<^?r&1M7@iZ1;5ovc_zdk;k!>V4g|Z)r;4`#r;VKQ}zl+ac zCG)(a>=foRdqpLD=5rAdd?r`w?m<5DnJ6pbGy7cme*tmCv|5jDpXohiRohh*{&I@R{%7p}q)&0(=J2#b@ZDo6qQw_4gHrCBy;I#Y} zi=@$T7`Q9H`5~#7!)U(t7sjBQ!>CS!ihA4}hHZBCf1ATNMXKO1-VQ<$!(rft;V`fd z4#Rqs!{A1n!+a;#{*b0Dr5r{xSVlQaC2qRzbJ|c9hoPNlx)>a$iY|VW9Om%4Se=dR z=m-u|Rp<VK@vfE8;L=8<8BQoFcN) zBjGSUiFSDogP~fU!@vRgofG&S#WNX9Zg7|&`m^L`LEtb491a5oI1HqV!=PN4!*B)) zhtc^62MmXa^iVmB%fl!*jCz<>8sm5<9Og%d!$1KJ1L@*0^w7;=bjW&rMV{d>xD0cc zu;Vh+{h~Nr4ihV742PlJXf`--7;S7;X`GZd-60(2Cx^p80S*J{;xKHio5R3qe+X$b z90u;n51dHq~;<}j+$prRf(hhdwY{om#=PLV1&jJJbO#Bdn6VK@xzgTt^M z<}d-d_J=fODdjMl!7|EWDsj_wpVNk_I1KGX)5YL0Rdlg(n8WL0bvCl2BREV| zp)(u?790-a?F7_eI1Dbs9EMHdqT%5%PWJzn!(jEQgu}#(+rnXzMO4aR5=B`Nhe>kf z|BW0bP0Y&bk`569D9>S_i{voy(q=5mVc?&gqZ}qha@-sScH)Zf@BEiI%!A`AuJ90rpc93~gCBtcSen4cXE0|ht? zq>IC#T$saf1`3DK`3MILhl%u1IgHE0C^(FIm{wXt%o-1c!yI%t3>4rnkS-2G58WI_ zhpg9E#TNH=OVe+Jm;V`rt%?1Y!qm9ifttsVAV}--~;&2!!z+oU= z9EOc`a~L=+zkwxbG#m!*`a?*)97glCzc2>f97c5-RMg|S_i{voy(q=5mVc?&gqa3E5xLQXu?}g2P~PgToX; zmei6I9OhSt!$1KJ1L@*0C>Q21oPok&bUwlX!(k#lR1V|vFbWQ%9;THZEoO~}!eM@M zI1CivFpw?|Ll4~?Mu)7|SL7KEgUc|72|F%By|E|`m%}ubGKRy@ZZsPlIE*$ntF)Pv zH;okz^Si@gpa6$~ba5Cq*3DtywEX6uq|tB~xa$ug^>P@^*Z#s7baNQhX;4v*o5Qfp z&i-$67^g@T9LC#0C}KDa+%Oyl_Q7FTk8&8?Xmgk*axFjP$dsj&!)OM}D2J)UP1k)+ z8>-?kv=dDigTqwO#mZq0uZz{$$c~QSFja-la2Qx{IE=RwP>10#xD0a`Hie6Zhr>A8 z|62}&)vFQ?(_B=-VOoi(l*6541`2Q(NEe4exiE*}3=|Hd^AQdh4io92au}C~ zQE(XbFs-z`m^B^>hdJbM7%0GDAYB}W9=bV<4q30S$TJ)UmthVQc3g(~iJ~}M4%0!( z7!E_b(QI(wFxuFx(vzjUX{>M<`MnYQZ+f8shka2UAj439rwvtc7}|-Zi@{;4=wjtChu6jGY-C4AaG0t>XE+QjI2^{? z38=$x7+i)q44cA5!^2^m?Efu?!Rl2BhdD)5!eKg!sFcH;Cd!I9%;~QDzmdaq7PGRt zoCy&ED9>S_i{voy(q=5mVc?&gqa5Z8$#HWS*oiCd+3hcJn57ddQ21 zoPok&bUwlX!(k#lR1V|vFbWQ%9;TI^EoO~}!eM;yaEbf@p!^Q0D8OMLT^xoUx;cyv zS+B3iGaLq&VGa{^T!wmgQ5-IZ=_zFlhoRkQHaKt?ZERNQIa1y-c} z>EbYKteeBYY5DC~Nu%K~a94gtQc^F6(R}SMj6pYtQJn@A^|(0<+wAQBHivPFRKa1q z9fTr=!@v#0VPGE|hV>|i!HqVDIZLkPr#P9ilyVr&U>W5wmAL7;&uK$d9ENtH>0)r0 zD!N!X%;9yhIvd&15gewf&>0Q`3l4|zb^_`!90r$R4#TE!(eQ8>C;NZPVX%66ILxu~ zx4`W zE0_^1I!Z2bk8PfiP<)hp(?wBZfi2>A-7Kc~Xvt!d5iD#Xn!-X!Qv8#S7EwA#Dw9?W zh6n+a`*M3^9`WXl!bh-qJHcfY~KCF3A1_QvZBp9Y$I~>E~kjB^hh@E zbH$7Dn>WTm`OO;+$giow?fUd8>zMrNhLm@lZDJAUxC`5rzVrH>7Lxribp$TZgRISLB(^ z8<*kDJM6d&^&z6LH}9L}Lyh|FFc~qC-wZQc?lT)UZAG)1W5d=4W|fYR@}_~ZVaGTd zHWb*fAzd3b8|dD!;i&v*s-)3u*l<^VfKgKKhOPP9M;LeR4O?{@NYvxru-Rs3v$HpB zr$`kWwzpGI#BA7b!)(~Fj}4pk=!T6OWy9vL`3;q8`4LN|ETtQ^X0VKI*p;~Hy3c8Y zvtgJ2H9y*kri-y*SJB0~VIN)>tFw_E9r3d~RfW!M*s$Pi*xpV+9cIJEWq8A8Q@Bvb zhVA^CpOYQ_S)TCk@&sg`93!8h87DGRr2Vf@_Dy^a=TnjH&*99Ly|kg^uM*itr2Y9E zd=5wch~1La$^AJTELxu5<#G1xk)o14`vMV_?%C&yveG^KLQ%>RFcu;NP=3#bE^^O? zP4AvPT5{ZbHcG`6Z#*abOu)Nm)4<=hXOEN0q!r^KLICCVY-Aqso{hpsuxC5PJbQLT zw%IJv(e8a?dWOh^+KT_Uwzqi}HIm#zFZ#8xF`%k;3mN_H2x5 z?AaGXmW+}Vdv>g|XG4KK8`8CBqg;5;=3tgRTZc9rFne~Shq`CGJd9$`Ru9uki^Qz) zQ1VIO-o>(Mvo(Wd zbkDBDP1k)+8>-r~X(yU4#-3e87wevVcwMZ{Ms{?>o?TVw%$^Mk&Ytb<1k_>nY+Q!- zY&L}pg=f!pvj69MHWn?{o*iqwE_?fz{64c{Q6_d>&scv5 zxheh?56NOF9U{CIF;(w-*rHK7Ud&12*BD?+nk@TJ7GO{4Nv zwa>_X`h6-+c3k1JlH1f*TMi7?Y%5_tzY0ZK8E5@_u~qYE`OLBW7BRdE6t2gemi!j6 z#^Ec*VXCM!4kdCWKQ74hDyCOUDsdA*-hL%!Vx5$Gh+L;yA< z0y7{=u9XxKNHP&Xu0#OB_1hpQB1X;>BNBlwA}WahZPTbkpsU=cBf-gzE9@q@(k>kf z*INlUIb-2p3&LXoegz7<>%HEwFjG`I7G}$pKQxEwjZANnR3dS+h@!UDjs;kfNX&&O znI$PAk!&J?T!{pPYb>BhRAYg*Y1A_oob2ev0=%kZEZib09SgV0l|M9}>AxhE2;3&3 z=(uXf0&GYGZigtDCn+M3Vj_TCi2#IaETBkKV}Z75)H4>G>}baV{Bn&2_k6fRR2qZ3 zmd&1Y_s&TMWk&SmDX>S z`*cNgvf~P0kzBJUTx})HaMr_{Zws%7@G4Na4R>Ns2w3aGZC@cOY5Q6J&?>o-RzEDF zs9m+KMmcHqBM>DkB}J< z%hhh3`**U>9~G63`!#YUKZU~daY-cxPlzZwi81IWn+SWpzg(c_2Z%I14;vDLCm~8! zONtm|niwEgVgPX{XRzJ#C?ZA%i4p1f!6GW@dD^B?iNU#YpZ2_y9alI+a;x79;a8w= zsNU=418YU4F<2*8^201lpOI8z@T`cU_SMdP*pL{khbVbUQp6z3!~nSx0|?jLM-hoZ z^?ZP~Y1A|Ko$P4mKKydcefJ*loTxMg&&!p3Nj=kzl1dCVi71l4L=kpe6(@oXiNT8y zB^x9~46;oOkSj5OaK!*cqKW}+)2Jr~PIk00fM1owV6&(+23zDxzWSQ!R!JoWuZSo* zx!M@OhQweSM9E8%A_h4o2FR5dK)7OnB2mSFwrSK811CG$7{ISeV(_Y{GzPE9m3*r^ z(>ElQ80-*HbV{``fDMVkn-C@2B}EK!O$?ALF@SKz07asT0d3Q$Ck9S-v@w8Rt{Aw_ zi#tUnF_81(+j1pet;=*5(|0A6NbD9-bSfiJ)p-$?BohCDD0xd#M52a?1ac)35U%qg ziby1?KQGcYjY=e(^P-a--FXpSRdQZ@PgEL*J#r=Asmk<2rXNWvarjt7(P@lBRp&)m zk~n+- zbh(l*v0<7isl*^lL{XP&V*ncxgKUVBG)WPIdL{N&kUUG=$;wCE7#fC-S%3d(ze%;EBR6gNu}-eL=<(aw(Te_Z7+Z* zsVynmUf;AGxzctBSKCn}sWw^F4m6VaEwYqj0nQ^IJjRzxORVc2WBKHlD?^sQg?`7R4_rQC}vZl#3q=Z}k zZJejAinZF#?DSx)l`;$IVy4f|XnlW{)pogM#ae-xKin8=&7Ae!!dPqBOr+=X`bA!M zVLF=W>CAs)2JTt^!Z)`jTHO+_eMM}}faUwI|3-c=@^fDQnb3Q6sG932L#+At!NVG~u=es! z56-p@EkRE3@@eF2+;48pv~GB`=AuOFlhtU~WwVe!Y66HVy(iP(02n@T>DC* zHTxd4^qds<^U(IaPsLjIUOr-RqIJ(4m+)6|dfwG|`&y3T(bO=k;x| z){>W?eU$0Pyr+0J?rbd)OSGO|f?5_yD*eT>Ura~Nz67NANbRZCtf%1B4U50I7320f z&ODuy=~l~UCgq(hBiv_Q<4d=;uLbg3iGtIu7dKDJOB5tiNYG2`psQmI;GOlJ1gdL| zqHg)qiY8Onm{#gp)2(|&+d^uvta{c`qD^8GXgSelu?e)5=s~dp^d?cZK_3&%Gt zuRj4)-&#rCMPd`^aq8+k1=PTLin`&{HL#whE`z#;)&}ajQ`gYiMBNYUqej--)b(S1 zjjRLI&0u{;S-()%MLav%I?DQkx(68R#uomTF5P;Xy2e(5AAX)jn@y}N>Y7m3#Hvr- z)ht(N9ZlV0)>mk?q3%1@ceK@xx(`_HXzNt!Cemh8s~dHDS+1!ykh;#a*~}VFT@u^Z zO#ZqLzAR?B=GHCLUBGh9WyPnC^|i2mqHZ?pYhg7GKzE2XTUt%!4*}DyOQ>sUHK%Sj zb;nq}h$ha9Uvsi`j5RNSxl%M2=vW)Q1k~EPjk-FMfsVHp5&gUr=mcvi(U|E#9jr%) znr@6=Gs1tWwU+498{*eA3UsnwBwBet?(Am0LA3u>ptG!Z0zT=bqLuM$GJI!S?+41H z4UgUdU2j3q-M9j}-qwfIolIR{LGb#ihj3?K>l31(vw`|q`-q+^hA-z@KN3xz3f=iu zVvyyC##%Lqx|KjT&Z#_Y=x}e)ICgJmK*d%d+1hJ zgQ&ak7NAG13y8)~0a|BGB^u0fPg_?JZIU}j_@A++v4*bq;LaDV+le-@zE=dn>+>Fk zZo5HqUIlu?T14H!Z9qG%2Z*kgzFp*h+ge35lI7mDo+Ju%z@6_|8;Ay83AD$0iReY~ zbAlLCi*oKd-okYtg;m$AQ?^xl>&m56oS^J6Rh%PVigY_rTv@3Au&sIVV?i|K( z_N$di)cQW?{;+BhEqxy7Ppf_mdaUy*jHRHjMGSiEPWD)=An2Aq4qdFT6?JQ=OA>@$ zIbcv5+WeM&ruY;+OO)n2iMn{sl?>nMM7yZV@^vNZz7W3T_|74k#hFvX*I&`5_%((8 zI=<0FLm2D2zOnS|2hMDx2113ZO)?2V+Ao1)E(=)iMk-$-c}Im`;%U`_1!|$f&JIccQ?^6j=?j0 zj}i4@A9eCQMKnJFexBufnP@iA*}m6V-&JhiIlgyTUt{{xTM+7-Hy`DC`*!or+v!<< z-(KGN1@9ar2zSonor8S)h@PdNLww&7Wl1~__|EhFL^O?kG|cy#+Poh9e!ee07Gq-a z?Wk|8AlTf`ei-XZBAUY0<}zOsqV+p)=jFZ@v547=*TPE3cLJ^ab{lk83xbtB8x);H zv~Us7G+#%euZXVmbtM|`EOgU-J!!MoWw1HRH;6XRqsUpD!6 z6XjF4&G+9}%;|ht3uLYH{XpGsT+iMxsFBnsYn|_R>K@_h{g%&)Lk+KS^?utIj6*+M z!x6d5ml%i9^9p@=PY`Noz#883rLf#PSHR{TgZgm{e&oxguJ{e;KKA7kwd831#8;Q7 zgm-@8tIzrhWR7L{_WF)ueXAMy&jrD=^Vnmb`wEFZ;As8I*NW&=t`pz+PN9|V66*}# z0pFRlvX7(SpdeTYuzd%8-FRp24BYvfuMh9Mjdxo9K60mgo=UPRXTRSkpKZGcaT;no-5m6aypW>fHl*cGd^_LQT z#L-jgzn*BSjMlusRsNYoe=>s8{R@b`r|t&-BBJ$=qD43PA0^tt{o!W+<3x?=*)9I3 zi8^rX-s#^?bjRH&x5&ST=m4!O@$VzD*!HFV{X{#sM&9o~5RbWXH`mCA{DSER>I zwpIy31fOROtNgwMpe^i&NBxOJJ?ZsYe=VZti8lCK65UO&U-F+q6rk5z{2hsMY4cTo zPom-U`VIdeqT8t3=^sh-`sMKD9sf8*C!vqt_g_xbkZsuSzk_JUGTiyKe<9H_qHp|* ziJG$Q-}>(-`iVAw^FK$FF$d)WfgK4L6Ma?!B?LaCE_o}^!v>Alwg*0=E{2?8eISsC zxU`qHpKNUmq!G>Iin%F}l?bli@|m&QPqsD(Y9^wF?Q4Nv3e@MFFK!;YJzr2W-nsl~ z=-vwq=bept=lg+66Yu3|ckFgcnD@;@o1`4je4+=X9MCGFY=h*uFSQS&&G!SFY4f=! zQNy0V4&K>KJhKGtCF;9Q(GNst(#oE|k3{PXI!M&mpg)KbjTL_q{2Xnp)Fql_?rcR= zWRU!2vv}5>aoH2-o`kskz}9{c7)o6~v2wEYL0~F%GoAqYFmN?>UBn8|wbVVp7JU?$ zN!`=beH6Hvy3=U$3*4TJ z8TZKTU1aopDF|b!Xs)8W6ukuWRbU}eoykDo1Rfyzc`4AhffYn!rUU&LSWDD&W0y7i zV-5y35Uso)x?6EV0 zml4eoU8~r$gVTwoU4c7$2j>#Cz7MEx@OGl5&ja-j-p%%PUWK-w8+?%MyOZr3DhTcS zmh}w{t{{4rXjpI!Q9Q@Qh~PS+UDS;VK2OwrA!-;M+(MM|96TEn+)k8DKQ9dKAlk#W zj}5*}UurYfcE&y4(=x!#!*lj z^rhm?K8(v%!C0dC3Gnm!U@p;Yq8oyBQc>Sk9D_51jZ!ft8q=5Af?#Fde3Y9VY{ENl zr)M_@kL8_T@XmRHaOW)EIWO3jXc}Youi(jA?s`Q2u3&eTo6J$SKoH8EBctbJYeDdA z-Z_E3+#T%AJCj+%B0;#b0Y}}UU_YXxUcu;D5*$kO8^_>7!6KqYn_%;iUsu=bacRKuvNm`lbyu(-o)!dO-njx+o(|3>>c`fu z58g>s{04N-1@ESn0_l|u--h75w6gj(=r#(1l>mL&7+fj{tP;9S!3U_@S_-r!_!!Yq zjMCQNI-+IwLbolrfoK6o!S>*0q93OrF0Tc*61CrsJKqcLBl=)H&Gc(y<0li=?}&okEhgBfY?bCr0uKjxcYO`^N0I}mJ4H118<{3Y0$sJq-*7W;ef zB%%=#msYWV2G1b6l;!*}J&1mL0X7q3h7t8<8!}@qCE6*mZX25yQ$~~)LJb8m^N7k= zU;UWdi1OIJMllPCK4RpX#4ID4D*fInwlHQn(VuL4igzNfBb%+o|$I5&@t*+kTs zzO;_nLezmh-7e-`B8zP}E#?cN9XsIJ88P3bVZ7XZEqc03%x`JR@}TQ32oZdqR=UR= zB6|HKwEgUuxOC_m(#p`7LZThZP;OXEOQK~&!(&<#HD&E1Voo6X>2lmTF6Jzvj5$CP zV+N!v&jOkhGn%^Otw5^{is72|Sj>3p+H-b16*Gls-V)roE@o&s4RJrh$# zH0&s#*J7p-Eo=_-am;l@&mRkPAZ9vI3wcv9(Ta_oLG-1J?TJ>6*jYrs$osj8*3q$Z zh*s7BIyUwuq6F60E_N=_ffmr67CVpVVcP5xJD=zcd7U@WIy?3@qCpLS`o-QsR7O8X z$KFNMomM8sE+E?13U^)|yO8ME6M=4sT|_j7e%=wgnCLlqjy%y?5xbP=9bqaHt!HDG z5v|Ms+8+A=(c}c64`P>VIksqT>0#H}OJKB^V>43YLxqqy}%+V&Q48;G>+r^dZN zq;2mKw~45ojNggYpt#LMsf_N}xGhA3+4f80wi0cmXII8;BibbIeI{Br#%(9E~IE7=M7scO1~L_@9Whk4DEIB+@>b z82>Ag&Z8;uzZ2;^x+?w;BzlZ}^hbO$k;XbTA(cpDotuzOq_eSZLMD;U#-kFli8R(N5^{+&)@>5< zh|Xs1Cnn?*-6rqnWfmvYCi;T0?wU}SXf^x&oP+|R;#l0-KcNAUe1bsGkc37=HCXQa zgvLZ0IFBw$C?uN6wWl~M39rRAt_gTUzMB4BB6HX)2e*ZC{BazO{LkXRT zbZ(|6o=K$ro|o8_Nc;Wh#O_2oH`^ulAkw+nF|j9+&du(Ly@+&f4omDqq;s=4u^*An z&Fc~e5b4~!J#i3`&dmoC&n42ixh`=ik&c&F5{D7#czH8%1d-0o|0Iqg(z*F@;%Fir zFJB~%A=2^kP2yO+lXLSx;&>vRo4+ScAkw)RNV-_dac(9hT|%UDGb^c>NatpL(qtl? zn+=kt5b4}JI_U}`otwubO(oKPKQ5_+Nc;B8q^pQ@6bwu%(>vL>=Os-eYR8rR{G{uM zzUQ8EdD3*E-#I>KCe0wafFttmq*+8hT3MDfhv*7gS($Vbk&c%qlI9ZWc-fFNk4V>v ztx5BVbe(uJ={BOLxRdNlx`XHx?qk0v-9@DPSbFjTBJID1$qR|J|C%Q+BGUPOT=HTf zo$n_nFD3f;c+AE#la~=Sz)kI&Oh#FQVKSrc6+mQSOQCG%nYw}v6xs2J)LDT>^Ziq;OzeL;=Fdy@6WvN*ic;k-i_U6-b$cO}ww>8kYZM7l0rpWcIL8^_X| z^qxeMIOgZ4_aZuvV}3z;AEHi-=aTe(M7d<652gq4YBa-@$_?vuB4S` z(uWc~M$We>eHhV8?1ydXBZzX@+MVg6h~&@e#L9c=qls!Ux_i^d5bdLt{pn+ghBJZ( z(#I1Gqm|#&ClFo5CrV#mg=4zI4 z1<~8I(k5dn(WwO}*FK|!Xeh0mk#QB#Ika+CMj6rBw9+?Y8c|#h$_>f5j;M%M&d-=m zG=)|!%9uekiB>Mnm_>9ktz4clhv+z3Db2Wvs0-JnYcu8&ZR5H$Cu1H_Pp%>V%9u}d zTPxJQFyl6&&$$*nkZ}i5P0qhZGwveNwO~`m0wP@t-pN=+FPna>bC#`(7^b3M_U zjP)0p8;HK*3jJN?3qa~&Rry)lh;&vp z$l9*u7?);QuM;igtZI|BgQz{{L;I|qL~paTXJoxibQ9<1Sy{V?wicpq`)2JXDrn1b zmh~RdW?DHvYY)*^v~p3_heS0vA0}sgOw^gPsw8VK(Tki_*JXW1w1cy1PS)o{&u~7> z&-#*R3#}~3+E3Jlaao%6HIed(tId*qu{iJtt?7p9M zkVwbwXIZ}z>Dc`y>vtj@yFX_gA}V3z6SJ)>>~T$!P($r(KhXl7vKnOviT0DRG|!GD zx|L)1lIQ7$7tGdr8; zclvTmb}rF+u90_U=Mfcf>@LpEC(?cF@$A|}x{tk_U6)ArvG=nJh)OwjzsYVu)Peo( z%V|WU`&d>^V;({(tYfNoTfy&k9EswPNe(Tkerr8$FOfF=CmSO!+BJe)0$`_ z$IC4_ZHao2+bqsGp6D*loaH$u5`Dv&vpVM_BAq$wayk&{%y}W_6e68DFXx;_)QM4g zBc~%#0>}KWoK8fm8>4SO$T^cJkNxmjPFJFljQoFdx)Uv@l^=3?5M98P;b2ZrqTe`k z{>E46Y55oIzG4RX&VYQ~wB-3&y6U}BH&B&cXq#X06+$)Hbv)`LLl}I`Jn%oj1 zg%Po&QTy4JXjNS_G|s&NOAJ`)&O<1Qk7 zCNQqX0wR4TP+DUlkv(M}mg8J$n)eKmJ`-r2x1LC!3AD@GK%~zEPS1ORNS_IG&D%tz&jfnrZ6?w_>X)~L zNXN^0d0UCJk1ojDM%0Suqbu^Z6X|pBnR%}hjj=F#?#$akr04LJc{_=gaQ%EP?`@)w z$U|Pw+eM`D{3vfXk&d%3^4=rTcz&C=hv*pYD+lvFB+@73hw?rq(&x#6ntO@#jGk2U zGot=ndopW&PINCG-^;=0PGIpOb6;N~Ghnq~`BLIzH#tJVd19b7@U08~dM*&nIg7iFACvTr)_d zq z8|UW|>G*7!pGTzQ^SJzcEywYBa(-k{es?2%tUq~o(+egh&MpF{E+5$X6G znctX5dB}zNg+%(y>WciPM9NBL<~P?n$qR1IZ%L%jX8x7mib$VXJ(%B`NS|3fo!^#7 zpTE48e>{;sv)Yw^B9T6``XK)#A{{TE=XW5|x$=GfDMUJ6e#<|NXe~K=TCI*miCkM7 z)#^l~eRM*tGl_J}pH{0Yk@iv7THT5EabM|Os|QgQnd-Tuy;Em3(aT(uKdAE<(G#?? zug()h32ghuw^tk5(Gh-AoiDdum>H3(;4!(zfnaqF-sHecf$DwaLLc*4<9@4Xt#o`#RA8TIpGL z2a%rb`_b^~+XZtaAcM<8nQdD<0Q7YNf6?NYu()lpE?j9nY4-4ylNVF#r z{l2>H$3!zZAD*temuL>>!=}2Q5xv76d$sQ8L`QQzd|3BOqQRUGKh)h%G=lRXw%*r7 z6WNwQbqhGVdKz3+*>;Rrdk-T|WBoDY5K{Y0ea@bl{(B+_&EMfH9qdY4g}RPT2p z-GM^&4iPP4+pn!>&4dSw*ULsKo z`uSMBWTKlmlAo!UO0<$=a8tc>qEBdLTfI!8Z)jy_y=vt!*n``7L^?MNM^PXPydlJ3a7HuC{zZcPGoSVh< z`w%@RVVY=7t>2GGpQ%o(KY&P|sm`oFi0C4Yx?Ad>OO(ub-cf%j(e-@la8LbVMEdk+ zS^W`2`b>32{ZT}NI9?vDKbmM5N8Q@`V~Aeh%J*FTu|$ixW^JxNp6Cy@@74Mfh~Cyw zSN~!nUHRUte+iMUe0%E`6V2hM`>OtAqNBNHeP4eHk*<8d)W3pAS3ax3R3csZ;u@3? z9mUz0+Tbc8efpErpp57QKF6%pU|NpPS~;Po{K=2c${5mza@Pd|DgQL`-(!Xnx9d4b zIJ(ao-A847(MaZh*>f!A;IT!NZ;hKoIsg32DPO!WMA>ch)s#KYzm_t!&kd9#E|^Vu z{P{Oit{8VKt|1|yW(SH-=&HY}b+&e+_SD&qN?U=Wj-*)7Ol-+x4 z{s|YUJj(P>W%<`!to^pa$Zn%QrJY5izoG0?^b2LQ_w_nQ`~Sytwf;wpyn!+{wq5%} zVh`>1`5{Z+PC`)Uv^0!-6-tjP`&st^X-G!!q zKN{bi`D4s@=ygs%VvYZRviJP(V?f!>@hZ+xB3|4;0NcKNI&W_)hxsd#g*f$XQV3Uct{Oa& zc$}GMw%z7EbbL)5GM@T9!xgU`Sw#GS8LxecCKHbzeI@1B=UhYi!@yaTUC+Li(zaJP z<_=<=PXo#xc~kr8l$%s8ouabj6_xYfP+4=jSMM$7v!1%-ZrXkClEswvx?#7waLoP8 zx7Q&%|ML;B>$7ZsBmK1PJax&V#{LtOQ^#q!&?xUbJ~-fM>aXjwfzn<#?0$IrV%1L^ zqVi(XUv@u)>o@C-y)N7F|6$;ZwEM`Qt(1pr?^V;@CyeZ4`te1x9?lx_8ts;i*-820 z1YLhCYgZ5B=XXOi9`?Sld&nM^zkR&s+xy0>{um$5`qXp#J`bMv_Tk`Dz*jM0>)2^&*V z;D7f{r2SLOzFTPGoqMU4UpPu00J`c8_Q1FpPR|Z7p-a^MK(in8y0kCLoibL};fxW3i0d2NZ2TzV{pU}hd}-_yO56U+W?U^8TE_gx zjePe~#S;eJAo-5}!#d0rJfLj*Eh@9Fh4fj=4d1-alv`nVg&hZbpRoP3@reWf#qwP* zQ2&n^v5@%c-b+L}_3l1%h2Q~YZ`=dv8wU9nb<1PHk>`%K4UwY8UoRJvc zPWi#FJi+p3&x74KZ>0JWmi4`>9g$e_W12( z#)ZQle&v0K#~UK;4k*iRkA4|YR$yc^%F6e3J3b$c|C9A6n0;7zuhX8=dlTgQLY?@s$VFX}4#0cCG3Q5ioU(r0bz zeKuteGyWR)#(v|J>s~y7<@$G5+2JgeXHxpCx`UM$U479I+UeJCn8*z4HnSes>&=H| z-6=Ht^+g8T`|~@a&u96;rhm2%ok;vjpJK}E`dm)Au5StD{yx`GzSVa+Wv-VQ)?_s{pAFnsOX@}Xzjvb}vB%Kcf%G%$c zbmkCArPne(~bzLy7SJR<#$ELWM|wqLO(zVnSdao`&In>|X`t?fgf zA^xuS^OTd%-%M%yX^(q*J^yv6uEX8U{%iAy{Qer}E~dW?Xa`yPL+i9N<>~lcn=P|#0Lyfck9clmAewSVtM|;)v)2;y-ysz}aTuOVK z9CK-b$Dea9YD#SL)3o8o5RWqb;=fRz2fZ;yWjljyUTeq0F8|VCjpLLN%GZ00X-j+e zjcrFc%jk!V)A2N?m)3vT*fXfN?Nt_6o8Rs>=i!FN&cq=a=S60oA1+U|>uqp>j@KSz z&Za+4nSI#iclP+|b!i{!Bl*|(F#j4TdT0F|)?tKTJokch?>`q1myH=uY1=P9ekW6J zk6U}Z+T+vqzkGjQ$#T{8r(M4Ke!PnI?0&p#>(enj?zvtQ3+eRjOo z^}U_=x;_gi_xHJ%(%w({^<746?;oqoe7ED=+^o0uzGCk;N4j6x_1OJq?^AZW?D_Ze zNFD#Sj9e$9T@Oz^_aU~=yDs{y!Djtl*Y^?Xuj}(T<^DeFC@YK4>`QeWz0;gmY`?D= zt@Gky^PH)xkvADRoP2sf*-rEP><06ktbdBG&x6f#vevZ}|9?N1TyN^lO4a%vF|r^{ zaSJ2c8`;gs|Jj$UT`H*cl=vA==JeP-O{oAGwKkvADR*vRWm`&Jvd$H)yvUTEYJBc~V{?ep>I zo^KB*J9LctUC*>UcDW#rVwinlIRdA4caT}F;E(r08_BTsl- z?=LfWl)(qheC=a!VV1F8(Cobw}b!KT-01@%GJ2U${+@*0zl#kyZ`R94PZ+3QPXLo1YlRIk1 zGQ^SFu$-Gz{wgXzACzyA#QCeZ9}@FMR_7lve~EcW%xmuZr2ceHe6K66*NVNy?X*aL z^-6;IVOJCWy^a=1?s*uVTG$zQihbX@UYCF$^`7`^+Bc>0ZI-C+)@nf8230JjFdr?>G3jP+BB$zmm{-Hn5}Ze0ZAYQcHmwG+hTzp>DZ{j>m`2E+{PC|aMZTUBGTBJwKN1Ugmf1h;$@*Ca#GCb42uet&9 z%LD7JBttcs6c^g<-kk947sJGXLgM z=C6*$;d!TLDR{cx-(+;3^MZ?=qTR*4OzQibsw_Rf&*9JX?{h>y6!jP9TdwC$roW>b z)r9=q&v8%B@`v(&$pX^-Re|) zzO;-#&HCoA{R+r^;mOY#+CY92-*^L_qq}#4rzj7frhW&%w?O}JG=K7Q<#*tj`h0jW z``nZBVH`)NyN-bT%=6(1zz1KQ49~HzM#FPUOa6Va7U}w{^Wk~2WehwE(s&ectj9ac z;B)u&&gC~(!{)HJ#JV*54-=1rc5<2tm&9z9v z4zbQS9ER;%v9ApBrLU^+6zw;G&SA~-th^u>c8Pf^{q;a0m-HgexcfW3b8lhCh#o~D zpY;59rcD`;kLXbzo}!*F_N(qve)G2jfW3O)`YWY7K5G$+c|+7s%pc3bgFtU!cr%y$ z-0Lmk$XQw^ndhJAhs@7E(~j%r`6jIo`?Uo-(m&s9&*TrsjqZ&3`6hop9CzLZ9^Jh! zJk9erEGPB(8;<9!#sd)tM86YpK=@mN!--p0A`n7f64*q~f(z&-|KoXAs^v8Y1`swSn$*^2g&wX6F)=SuHrqAj6<&2%K{gTHqcRO9{m3jI% zz<;4};qVlGkZ2uzAi5WPo;uF;gU`)4msvieawH#YpX|(QW0@VE#D84prstp3esNzn zOo4j4>u0|ni#)7{s~!J-`Rmg3gXm}Z{I-BRwLg>KbF-giw>>iJr`X@K>Yvo}VA}mH z{dq7m`*0jRKKnBEe^%`h^K|`6p6>e|tzTu|u0tME|HEYM_Db|tOjs5>q@OkR_y*PYs&hMG!Q}Ge=5%D)|ds5rsK3>oc_j-u>`Sf?) zA7(v%R$=ww{(sc-;M!1sVVAH6$5(dN#Z9wh$KxwM?e+;s!hV)ryHc;?(r%~p*Kz6D zhyC~Q+lS*r^dm7&vujt@*KyddUE>U2pWyh-`uNIPzkd97yaD4pBJl&4^@(UF(a+6! z)jf`8rjPwFeSI;%rCq+M=N>mRF4r|~^0?=2ch@xQZI;&`8Qb;0>rdDE zx%Nx$zl{BndHQkS&(OH(@C-Zj| zS&#RpJZ$f8$-nQoop0ZQ&&@dFrQkhKes~Idvu63cfT&wPGFd;UE;%0m4k z68ZPZJ$xTf9X>bx<(kgbZeDNq^bJ5iG_Ex~#k%Amy@&C_!PnvQ)bXgJTe+F#(>q7< z$$tCyXLfkf{$f9qwtrIl#eH5L2K9FLZ}#gk#lw2I+VSs~zYfkH-2EW>nK-XV?N9e} zi|n>XX8jcVdsh9EdjFDke@lP=l9_!tjvk+V8T&u0c4dA4@@V}k`*s~-{Ws_0M)vLT z^t>L&zw3O!=P`_HS)a$U7Ka|c9rGbBMRE067fjPd)Q9A-QDNA%=8}~r=IJl zU#{36rfs*W=ROZDO|!mc`Z$oA>j>BM>8BIts%hIJ;<~Bt9?!E{pUnLKa2)sC|1TWO zto^cT_v7-HYkRtmKklE5+duR4d!YY_{cC94X<%&k?Cc}Yv3$6Fk9tmvcDUNh;~d(P z^*HCL9oL}#5sCbJq`f8K7jqok1-UuiT+_SS&+G4=-l0C6?<9I}HGKA)mp>D5ov-}T%zJ8>|M)z6dhm$7}q|H96!#)s7VowV&tf4`HNo!G9~ zwbR^Rq-|gN{|AEoC9`(Us{c&8JYCOkh5jCq$bY}UT)(C_&dhP|KE56`A8d#8^AYQz zjO{V?-N)0T+2J~#_;|=_eK7u*_GC4mf7&m*p`FG0LCgm?;d^4dCEp$H^L+}W$9iQa z-kkC<-duPjJJ~riq-%QY=Nz*0&m6H+*p+?1WzU}f6+7Jf+2gazuJQO5k;s3SCH1-} zy>VcU>%5?Eu8({@%Fnf*@_6%tNBNm{Jer=T>D}8Yef@f1w}>O5aV>!{eRkqRTb7R} z>yqv+c035d_?2_^yz8Mo=oi=h7T+(Tf3m(`^wclI!7mYs{C9)Qer~qsM39^P_@gw_ z3xAq=%iZ)`%WF3|1=`Ued_Q&0C9@>+!zse_J`(@X@)cb+7{g(cIz;(Ut z-p{gYU)I;#*q*NAg~ti($61dPp0=Zxj`Jb^{V{Xh@9rnjo@N|yABSSSo^d{=zWexl zG&@|!A0I#Nb~rMuk6C^ZNN2{sM=SrI_k*kbuKk18*WGRr|0+Oz+~Zf~aWA|2mD4OY zG!E^_eq5@<^7kZ8raj(s&K^(q)&Fbuh;hn)XE616H^+zj_{^$aDD;nr#LUWT0qM-~ znAP&Ks@DO^4~=^pp6=r)AgM2Wo_ahDbhA6Ne8xOtK4M&^ZBJ@D+}jK7aIc4`U-rjk z6sw2l<5HCGZkN82e_yy*Pd)rTl6$=}_RFK^6AkU)Zilch`~F$zp?_Am*pqX1Y|fG$ zkFWfFE`AW}kesvUOAr0={XcBaA0FD1Q~m!*K0Mx}Ki~ad^^eV&*1RvqSJ*849h*HVf7B!DO>xu9uK%9s^Zj9ZVJN>pYS=ea7=g>h$jOhB)v04B~cBSWMVK1%^#Jx~fzNh~jv)_|*$nT)O z|GZtlcxcz3E_S_P?BlUrn;uj1z0gi9zi=Jk zx}N3dt+)=z`gyCT^S#(_EK2iSPsDxme8+trd))e^VZ9WQn6dpL4x9CGUk_)u9*<^6 z`sKgyNcAxFUxM`JxnFRa`eJ>V_PUa<3tPJ7lU+YN(Z}M)H4sikdX?FJQp8g)0_`R)3Fdqqf%<J6msqonqY~{?9oy zZZLfA`hN!5smBPGpC|k1@ld|7!`;4sq!}PjeNHn6J~!j~@=WsCkWM}c9_F+65%UrI zdi1Y*y;9f5eOzOG-1UT?eEJ^*JF?&JPOyADX|MB8ZhCfQ-=1q8+LK*B=ZyY8=MPW! z|G&DlkLWMiZx?G`&-w}4@%YMj{ryPyc$a;Dcp9&Brk@Fay7#xt)${Cuqc@qJ&~ z@iZXG7v!n^P#Qir=Lwu|-2Er!8IgbX`$ts|$4lDrJ|GF_t?b&B`dlpSxS#&HSbFyD zg?RJ$?Zf`<-mclTE2rMS&H4D_>Adj7KYadr)c4Atw3qvPk5Bqf#{CE9C-?Xx=B1pA zLw+94E4U7G-PfA)D9)Ezxo6JWdhqev5e(~rh{RDY=eT0LyY7SezNneo`XMYseX)+f z^#j*;-=}uVL?7pSQ{R1mnwdV%$LZ^f^P05lZ|b@4M>8(hbwA4M?QVCU4C`%{JIKx7 zS+)1y)*F{*{mgpJaI2SV`t;L@bDqrF%l*9P->(0ErM%^7wv!nDB3_&AQQEED{(l|+ z|CRRrziwxC`>$)oWuAULj2E#EvW~|0vjUP5;dAzVKk&rym7R0uy(}MY z@1x!$A91m3obf(cPT6zLLwj8Pl=Jp@>Ywji{F8I-blXF}!C;Rc{GiHY;{RZPrdj3i67x(tx4)u1| z&wf3Qc~}ouJO2IhFQ(}S(a-Yv{RHyV{`>_#H^*Ui+vCytdsh9E`g}I+{+9mvY-aZ1 zIC^~cW$gc~+GU>4dOH6;TEEJ^T~hv>j2qdv$5TJy_;+3R@$(~$`&mCf%32(H{C3z` zd-DGmEbRU8dO*aZ1JO9|VLS2p!hOEWO#k6=>bZXU<%)Gk+IE|I?(<6Oe@cBfEB`UVo+CPU)||u>Ymkf3n|Rp3d9YZ(PS8pSN**WPRSw zTEBVxc1(nE6p@(QW!`p=Gv<8b9$!SJAxfust z)2E*K5)9!ES&x@JahvVq+*_W~ZvuaoN&m}VMSJ}5KtLGAF+m(HL zJYC=5_;;NT`1%Iz%li5zYjNoD+hHq!=MvAjtZ&@sJ!~gFU%1bAndv_~PCeI8zg)47 zNZW2x&wUmt|m>8Gm-^IJq>+V+UJZtAb*7E;c73Bb7)W2 z~G!e5%#*CFJvcf6=C)8WV~c-U-=~Tm#{Od<2m*IByBs>-=AQ6Wah`L+L!fxKuPE~ z5s9~4-aBz`XW>V49Ju#4F|TKwkE!q8&mPSV*M7$PiMt(-md`(5pYq^W_jxA0-$4zH zs|o3|-~Rp{j-QZ6vQyaC^jO;*vh&Rxu~XQUeZOVTp8pj)#Jnf^+2gaTFZ7d$#NX4L zmxX=qzl&|ghasSE&Sw)m%Fnf*@;EWeqx?)e9!<~F^zQAHzWz$EJ2Y-1JjMKBz8AO! zK2JT5C%M&EtOs245#JY`THifBqaC7rp(pG@`?E9eA7b`;GVfog+OEH%Jf4Sf0RR8~X^2zRa&RpL$&bi0g z?Dpf-`-rsT-lOg#a=t%%dOnWrp5DA5;&ArohbMONIP>VgOZCKGPyF@p?^5Bq?|*F^ z{`>aey2$mMn4fc_e{g=t%KxcnZC&*E?ZEX>&fDSXx~KxI(;^ZzmwQF``4{^OUvIhZ zZ^ZeNtG<{YO+EL0P1@zA*7K}9*LjcI>t1fg_GYeMJxzb5w!03bGxyO=($q8k^LmEq z(@)ns&3seaGt4dj?E2yVw!Z0a&-zdLdTICfe}0_(-)^VO$Ls%g{nPI+8QYz{o@< za$d6PU$SeHhjt~o*d@N#TllHzu@sQ+$+6#!`N~84{;&4aw9gyF_!a)oem~8b{qqyM z?#i$aFYNw3Z%^9MvpD#~U!M63!|;_ z{tqw@MkGFJ{eOY<=6+QwjPDyis=gi4oBD;))ED!0+VeDDpOkjX=fB<#Pwe-sAEme7 ze$;-L)B3Lc*fp-D)nD=Zjl}y$>^%_Z&)HuWdHTIZ;(LGoc6krPjCbze_u~(ChQ>95 zr`V^7_t659n#1R*_i3%*b93CknMpqHq?6A8w|vApI&FJW+u`2sXoq_}ME!jFzX#=I zzg;G=d_37#Ww%~Aqo1B%vhNR1*Y7i-9fUoieX?)Iau3@D?Rb3UyM8a479X>t$|t zPL-Qgd$X!{Bu)RCemU>vPuKM6rxW|F%>3@Y@5*XD{wsR_)$#CO@$Y}dPSV z33#fAMUtgXB_#HD#WE0cjd>%X-ro7nbe<&z3e% zh-F+YQ=slbWEcN%=ixVf~OIA6m>z=weM+N*C_$+(4d5;#&0+OiJ#Ym$d< z-@y14=?cliwkH7JB>DE$pEG_{x#7*EJl9!78o$+f@ z6O#MI-UDt;^1#*7(-x_%)Sl$cR$GC)lU(2KVBAjXL-O+5oxp=gUUzdr#;;4GNZxJp z)4)+AzqqOd<2R&fB==ce26!&XZ!fRFI80hh^870*1Ft6ep%pJNZZE}={Oc8dz*|W^ zd1ZaZ9i&|(U%fIEIGNRn(b@K_eFBE2N3i&Wg;_ZfGUUNm?JOW$2; zY4BLa;nHB>@l1a@N27ko3w{+3qHH`a8HJ{_<^Yoh;zbnlIj+E+6wy@6!NgtHw z@=Nv^dn*Bd2rT01ASoVL#M8l2BCv?3gQfi_w=@p?g5^I%@~y!0yTan@4~&ON(}+{* z%SA2HXz4ETpny`0$4Z?lV*1bO`Z11@wi7o5{Yg@#7f{|G(od7-5T6X>>1RrJiN^zf zD7Af&r=Kmw9}HvidD2+of+0N_&zDXRZ=Num@kf%xs}1q_ea4HWaN_Gb7cgEf%_JTf zyqxhW={Mr&s7;L5Nxqd)zqJ47jANzI#M2jl!8l%8OMJ)w4C75w?kbo*9?IV=RU)?e z^YXVzbBHHH{yU}J#J-UK9;sAS)L);>^FJW9Anp{x^FJu9B%TQJ!_o=j${;@~Jy(tE zi}pP(g#e58Js~v%7VUdNYKwB#p4VCaC#C(wZ2}z6SfsO3&FVbAE0&b{&ojOt#Sr8C z`K=_^K>25NLzw(~DV(@*V0XsXr0v9=>W^c5U8?jFrmt0>&%ZxQbBG&4`M*nYO_Y~| z^6yE5iTlHR{kL?H_zlP}m!(B5OkWN1lPw9v;{&-pily+&C_f3TTLuI3`Fkmo=d~;) zR{TF@T+pJ_=ILikxuSM6e%ex#IKO`i8OGHte*UN*fAD3-FImEg3xxuOXB4RS_TuB3FhU8Sk4f~L;V|BatB~~8`QsH(jub>!;ZUDTt9ti$Z@@7@-A2(nT+cplW{#{GOmZ_82RCP z$Yfj(%{An>9x@r%L-Pzdu7^y<_0W7nj_V(jalKD<`>??n zzf%mx_st9c<_h8 zZ35;peqb=xFBe;LVLV8wpTOicgFmZ#lCffNjpQ3{PP%G4)QN(FxKa3gU1K* z{E8cV61b$n&(_Ufob3k<9$&u-pF3+ zsJ@JQc@=Je>GS)KVBFVhG;ws)G{ytH))JTYpT~Hxm(mc^U*EZ!@o=x2#3O?@G9K*} zLp*))UdH3Rl8Nv5pI|(}t5hS@k3V>o@kFl{#05isXFSO(M##bbDPGCMHn2b1t6F2! zpE!ZrKijJl@ohhD|2(h##FN4PMP9!V`-1&TyjnFO{bX+6a<9?El|#6FE4|JTuLt=W zuiQ;BeJ7Bw^Wwzk!^VNKFI&Gp#AO)A8GJG@m~p(p%>ueH{>~_8k|!9W5zoS z#{RU&;LqwNG5G<58wXxsoNO@0lfwpMJUMP~Ln!~W!R4U*a|UDox@0iMlkW`1cyi6) z@qyf)8wQ^Q{@LKhfe)DcH-k?C-!V9)ez6i3>7K#W>iIEd2TbJO!}Z!T&TVkBfC-F! z3~m#!g0a)!K>_<17c@Af{$<8b8{81|OBh@Z^vfFDAM`64oKoMbBwJ4!+&HiV<5~va zs@H^ZU4xzVdovC)ctiauj6)4>9Jrow6N6LgA7R|w;FBP4X>hZEADO(3!C1dAgH!4| zo@M)KgBu4v$GC^V4MG2HgRy@73_cmyh^3D(xLsYoe;8u${5qUR7+fLnEtWpg;8u`+ zoWZjp{rd(t3mDJRPcgVnz%s_u4aWZcp}{HjcQg5XgXMsWj29WK*Wb zgExTuZ-afHez|jt@pcXBXE!()>Zcjp6YS4t@I|n{u)#?nf5zZ}ATMd~Nob$426qE~ z-rx;^iLCw=4gNLo9OFs`@2U}*zrk$+?lb-R2IKf?U~o$PqNOcT zQ-ghjYB7G*;KqS%7{6w40_5M`U_FqR|E9q=>vQg5aHAm3y$tRH_V+V52{^*wfl!}e z2IqqEMjKoX>NCz@9M6*s-T>*R8SDf0%`*5J*f-DMV6bnI!9BsAr3Rl29L?&#%HYO< zF^tz5yry0fB7JT!j{jW-r_`^-VLYP8d7`_>94g0|ztxa|X|=JBRTFgK__P$>0Rg|IT1NkeBy^!8hSNwLz_`@`T%;GYKuHw6FWvWoFn4*Vk-P|AId-eU*SBY*Pci>C zvbG}r*#8^GO|9|7aoc}m{EGD=am!$Km?X8b)@_0MCqcihwHNV1(0{|4OuP>CJ6i7& zHv|1Qt*u|-`l7zwt^I*TeS27k0*m_gu#QDJJMZP|#c=C6V1C}3m)Y}{RelxiDHu|W z@!Qtcz#{+N*8adE|322Cz#{)X*0CsO`SbPXJJxf=xc=;C^=paw#~-Z3@*iLgCoUM` z&v>9Ufp~p#3&w-2mx()tbYMKhTC3H=^&M_)11#(rVeJ4c>=|JVM>*Rs@%8RV>ltEP z?~buHXwCEE=bwDN8)c0p#&|HPJTD{y`tb+lau(^Lbue+kkOGV^ zS@#ovnN*JPx7Oc?{e!DB{@xna0rmGK@$#=*qln7{^YU+6uM)>Y{eQLQ?}+JbQ2#sD z;lvXs@cQ4kt|Y$g$LlY7J3C?e$xuJ5w;!=D)KB(aKzsu1Q@r;R*97~V-jzC|{!Xy3 zfOi;i39zrQcOvn`WbU7$-dBk$hj9NC^RD|Q>aPcR3GZISok0Gq_YPn&9?N)t4J`V9 zS??>rqW_omzJ+o&9{K*KoOg>ZJpU^e-2asKjs@o9zX9{_3*P653x>2|T*y*C02dunh~v zzwTK6^__3A@*8>gA|4qW!MM5iIpP|hL@{pdE%(6m(Lo<{;@iE{ay@x|{QU#I-WupV zhZy&NL%p4Ep&a*rqrIbuasM~on_UTlKCY)Gd-nzA6r5C%)~+%RlH{>K#l!8Ol%bZb9q|<)8H41T6f2 z*84cH@c&odUjYmMf8~7{<*fhk{qQ;O@V-3%E3AL>{qVQm*NJgIe9gO6Ka}Hs_=a~p zG46+d_Ab>Q?Yq9S6SMcWcPrwN!Mz#Z_f95`KRB9kF57+Lf+2Gm+ie5hMSc161jbHV z4Dnw<`xxi5Ndr)x@AGqv3)w0VtHIY87qN{cF0|tT<_e6Ksg&<{JbH^wv-shQzKjcA)wFNpPx50w@oI-^M=;8--z+Np`ESQP)v{G zsiW;2F`hScwfPO>az4H~G5dSidJ!xBeHiz$og-xTm-e5+IKtMK`1;O; zjEC7`h(`vmW<1*F9D(WM4<<4mZ}THA7;=#D`?du_4&_g=B@^4A{OLBok*Gfz%AaEk zC-#N%7ub#xuTQ?n@>^`XPuwZw2IG%yuZ-gQ!vD){eSk&(Sz(I+7XDvh8;x=cp1-WL zT_wizm$kMQqj`Q;EO`DBYfB);^Oty=ZzRg`{3XE_1w317I^C;0J72WL6Cdzb7$@2C zzsJ+F_45EO-({;yyvmQu_u68JrynfJ_zPPy@y*~ej1So=j6wYdkbjD;E%9#1|AZ}p z_$1_i#&(%_Ddhi^t=?F!FZ^@C)&W@f=c27Uu<*}CTVIs3{>jgiF4-;;<9X5*TZ?f# zKk@$AkG2G2JWsl5^Bs?JJWu-7HjNn1lkVE22`I<&q`z$8#CV=$k@pkhc~WlKHwx3^ zd6KsrMU3Z3KJqPMJWtZ(PVZxSJWt9eA0@`~q{4FDi73bOq-W$=BIi4q# zm8TKoc~S*gnv8NhPpT~UCC2ll8uCSAJWr}Ex0r(I@jR)nyqy@=!@+X7sVK+uq=xbw zVmwc3Cd(h79M6+l%7cmVJgKdGl^D;H+RJUHVR}4IdQ;v{jOR%`Ad^ClX)ZIgN3Qe3f`) z@I1yJ%ME6ue(edX8LyBB5MS}z!g!5*j(GJdE{~Pv4>A3Vb+|lU?n^8mKFWBrynuL8 z$XUjT@_pj?gVz{um&?sT{emHP8Sj)w6K|caRIo^UQEf^n>g z?-I`f|K_rn`Uuk(0RP(TlZlT;aDBy|K)e(5op#@am_Bwomlv=%AwCQBD`Jl)o;+;; z^G7lJMdI%MqZpU8H&}%F@zDRu+6NHZp#PP(pCg_)f%m^kb~y&q-}dAEubRCt@nq;>?YDu&{J7rEUa@0;S1fow9&7JQ zjOXJU?H7she0+<&#cE8C=i^EC{lvK5+heb}2IY7@{)K%dF`kbfu@_#8ay%bDVV_2f z=i_JX>=i%ucg2F|;}`6GiSc~=vi%}4o{#@vZ}ADH$Mf+U_U*)YKK`q{(t4ER`S@LX z3^AUM|7CZ^q8!i1y?mmGas4U#+$F~Ian&dMQ%sNN<9U6~5aaoHA)f|uD97{hqCN@4 zcs^djr`!gVK2m+`3xY=@Be^tL!ZmU(NSE#xsP)brY{ZoxAYlI ze0^u$ifn)Gvy^yb@H33Ve3Z{Hy?pou#+`j?5>E=L#kiYK3~~IyMvUL`IZ9kGMsl7`ZIl|5nJBn^0_{V#FN2)ANiEpis=tR`z-NkLA(v*%Y71v*FgKM z@wrTV66{~^(IuTLJ$+WUb|sU4WUQ^-`tl4A(4 zh*!BBvw=mt%I#PPEaFve$4Zp5{W8B#vO46Qm|y(CB`iPLQH{7@$a=;;j`x8@{;Fd+ zu*hF?d;%=;*Bl8bx8VJh?kKm5=YPe5_fz>DbBOVNs)$40jdHx7D&`nWjOWqMIxZ69 z{Zv^;i#?bg@24s_5{U7Bs*=NZFUs+Ls+uE;81JWQI&Kl;{gj`h#Xd}r_fr9mmBe^I zRnOtvk8-@93U&-8#`~#;j*G;2Kh@OH-~gt_`>9tPvBY>k)!I?`3zXyiR69o$G2Tyg zaNHGgxS#6c2tSDF@qQ}YafTT83%wn6lTnWMQ~ew(iSd4Fpu>3x<#<0e#4(r{@25sM zE)wJYRHUQ9VN8$rQ{x=5#CSjTzN7FFl;i!>6h{;>-cL<;TqVZ)sacK&M|t|$QkBg+ zS$~@27(jd`=n&%tj&sCi#(&Ltu|rP5^e6m&WW3DLmw5Ap2aH!c77#1`ju$M_Cyw05 zFnzA5VvIL9DiP=RFVFZh#~kA5s5*=j9lME3`!`^mo{aZ7 z5{R1}9?dw}ahZ5($VA3R96={ge?=V6|G1+s@wOnI|0%~&;@T6q{H)_X@fANVKko=T ziTX_@bNMAl6mey+@3P}6as0t~On%jo{}iS#7_yS_HAgSvt%4Fhp zAh#+B#K%A`D}}#A{YfcYUr~aHmxXYBU0F(Od6&!cDMyJXgMSJtmCmC6-~Api`BO?5 zac@7zi)?+b>?SS&{pVTb7V#12KV_A+U!i_H^q&gKSYjLWpGwMg;)xTAvHYtmh0kI7 z+kU+N)KW$hPlo9~6TGiP8tep~hAjW^GXMX%iOL+{NcqmoTs~1*Y^3M< zlay5k7i0Znl5&{zYmTbP_ygq>aqy`6z!!+;j%vzyn({sIno+L--y%LS;!VcU%3b2i zBYFW_zGcNqVS|FRgy^OY##Cd-xsM-%@rfS12O znM?f30ABtAWeIVkU0nW=vYNQ{E-wE_*+6_fg3A{wTZ!*RaQQ-IH!{_Kk&wZ!G^~#X*eaFIDmpWBE&!qR3SKGNqKk@vQu1 z${Uov+ZX)*FV`zwh{t@v|NnBm(u;U2$YYfO#AiSrtBfFCu=XO$?^9(QaqQY3fu|Dh z`{WMeIAu0)q($I@R@{w7{O>=3Ygl_g{TnKkqT;~y0#@rt2m zfr}8|A99KDb)^Jx;i2CHKTjMw>;~hXlq$sShW!Ryo4Cl@KN;Up0*PN->s^_16XN%W z=Vg3TX+^wXcwyl7#OH?>XM9WPMtoy7bT-&Jy5Lw}Z<%-iD+ z#XSo6N4Wf+QkrAH)A6^YQdRDP(Yc=AQ>j z8DzQ3iiV8;R$d?;xPr_7R$c-Y`AKS5L!aj-sl5zt&eBWjd!&D66t~Yyok)Cb6t~Yy zok84m>T4{0E_FU}>#6O5mja9Oa;wi?=f#M4l3Oira95T-x7q+%zO#?de>SxRv1LD> z|7>bIVr(B-?M#gABdc!_WBb_E{=lMr?CLOJVULeG3)55k_^2Nl{0_6nM_r37FBlua z*rCP~e>#@S9qKk>2RoL{xx;P#G}hwbF@{HhaJ zkIM_HD}hCRh18uWr~C@3Ul<(A$}gl|B>lM!OELcxQLhp&Yq*KYi>N;n<9z&-`Uh~N zjPvnRs@F|kA5q@ZYHncR|EE>OVDA5?)so0E_Wx(p=ZUfZKciM9Zr7jJub5h!`0f6@ ze#O)vU{PLi^#aPNe#O=A4c^M^FRtdl#qAp}mw@@GlvJ>zobL`YQ^w)Tt&4LV?3{_<{`#-UR8aH z*xBSamR~isByr&;_khb2*NEWq>S|Tux)EGnUG*c@r&y}6^K~_d_~|JQ;HJc%!uswd zwKee}Sl_**b|A*~sHt`*#`dVGzC*mf7LQl8)Ir3jYw>thOC3$zH@YAz?`1WLcyx48 z;Amjs&)Vu5l#@Ses~ZgF`PEi;l78hFUY?)&1#qNXD~8Mc)Z<2a9?$*NuMB>cmFKTs zBmG$`o@ZP~{e^hd3NEjs{%NG=`T=V0U)TfUbtNVbP`e|`K`=iyRr>%(%CExw*i;=v z@^i^uSo&t_DB{b>J%OW$Pps|BxVbuw`0KSpfaeNsG=^~tbunS^SYpqJZa({{SOdItTU=d&1sO=2i$MS2VMj*@Qj-F!NP8~`7%h7Yd z6NsNm`IhnP>IcLxru+arhZy%KZ>TZExIcMAT?H)qSD2cDa_V1U>X!!JV)=!sw@Dwz zV@LG?F^-u>#{Fey^*LlJ|4p^B!93o+ zsfJQ|EWfMToEXdRs#j~Gee6GP ztMiDl|Gce!OpN`bm%2uzhwe zzeyk4ub*oB9sP^#*H3j4pF7%srSGp6CjRAUGvE@$Po=bG{I2>O@rx;M09OGP_6$&8 zM>*LuKz-BTH(B}t>R{4eo5cMap^hg0EQ$L!LVcfj|4JUu2dUA-U$5lxe2_X1Sd=$d zjYm0^H&{(HnCCZGJxKbv9v`9}C&u;o5cQmqp2wr1>Scq&nY}|*$8Gj8n=iM$HE>tqv^4^H{YGuo%zd)OMJj>N8I5Z15bG z-#B$4vW)ZHWOX?)&Ucg5^~CuPa(kz!pAnZh$nBk?ZYS;=&E-?o{lufAxqPacLj1#2 z-aa3wUlRX5mHYDp^&4WG@208Oh;hD~rv6Hd{X1IylNjS)w3_=4`ZIVO&wskA5QmN9 z`A=610E_mWp%y|p`D2D!+~7}{y))G6q>tx`vs8a#JWrgZh7jX?Hd}2*jPu!S^)+Bo z-iK;Glv8;hs>2Q5%F6ptO(y-*W4~m)NIgOP&DaaT=ZQNN@ZZVr-wq z>TP0dpT+9m#MnMdRNGzj7q-t5)k%!)^RZf(7~AJ#wFEJ?&rJ;K!5Kq^t zvx&a~`8stW@po|ku})nWRqrWi80=6RgV&5yxFRL zNsRF(QN08#;!UD@4OrN-P5m3wlRev1+dZfsV?JMQQ=dVW*TQ&BQcDwm4&yaReSvt? zbngG{Y7OEKrgQ&qR|AkK{~c6x#JbbS@j=0tIH(2_8>J;J* z)4KuBCjM*(FMq$fkodq3UjBY{1u>qNA5hm5<9Yc3HG$Y?G+z&Xp>8M6H=3^pzfcbV z^Zj;TR^CDN8-s^2PF8Ob*Zt%@#)s6W{^b7S>8CJ0tX4I64&x(gIPtQLix?kOj{=MJ zTZ($d;MGi?qTWE3ox9^0A6IV^`|eHv{+oEj3|{{es_i~6f4m$ugV+Cr>I4?;eNwHD za%zv0Y9oVrc_-CQq>tsDR>O(0ywhqw;@6W{>}yZL-|PW=s7ly_b&^B2^g$~&*VU@$N5 zyc&coqx~1uCd6p}1+_IXmUmHYPmJYVRJ#L<@-C@!P)_AtQezC>$I82;ZX*4`^Lc#u zR{flK-h3V(zE$@TH=TN%rN68mA#OeOOW-rel>c|?MT0Lg`FCo82iV@_r}6gxQGJFu za2jv_AJsC%zm2}f(qC6!AhtwG)j7XJ+$56Ae^LX8UjzA1Y6IfpN4fns)E30Gj&l2N zsO^ZWjO6m0YG>lcBf0#h`WEr<5nO&t?N2;&1ef1ZhXD(J{;bYIIo0=P^&^9A%-)~X zc+#K0rUc_VY9er?yn0Pp;5|lqzMi|Q9x|Bweg?4rcb+wGiTy1K$H~PFxti&(%kJjkq#=pR14737OiXH1LrPdmp8=;)q_gSr#!3vW9Ed2}GA>xov{eVvq z<9_@_?Q3GJ|BKr9#CSeeNxMmm=W~^`yTo`tS6P#Cp}+8auCit)#`SO&Ee|oShpT8$ z5##w>Rjnj3p3ha)$`j-HTs5sKF`my=)BK2WJzZT3BF6P}b*(8ep3l|LS`*{>Tn()Q zu!w&zX_HV+{(ecDVKCocyreB5{m*Cc{YOo0HSw_-TwYV#04(yWrEN6yxnF8&+YAn5 z{;#FoBmL_m`TS8=^U96>`)eeRmvuDSNg0v7~%fgPp&52)J*qw2(_8M`>!d}3gi2H4SmvM*| zPCR1!NZ@|JSL{hJKZa^UfFtFjFh7QB?-7sOSf?WU{%ma`an#0%OuvCP1NAM@%X+eS z)==93e96*(Sq)}?Lv1Ut7~c)GU6`KAYp5Lr7Ueb6P7q^xjkI&bSY9LTJJhH08f#W7 zZx2ykV@(AXEG6tl0KfV^wrh^N6L7<(pTF^a`az6 zZ5zqafBm$*B(FV&_lN%4VUh=p;qBdDJ5BPl^SS(8?E>-l^SS(8?J9Ar*ka6{0opC% z_Oa!F{{R;LAE@P%v41q0RF%mGY84Ew!#G0gL_B?5Fylemeqhmm25UzRZo%Y(wFY)< zucl!CIIRURo1ek{aauc)WBtc#orN6U9~rN`MRGh(o}l$7Ii4p^(1wxx?@7G=QQ8=i z%kaKHls1{ z{#5N3l7F#%9ZUa#c8}yIwkH7R@+)zq7P%D5v~qYrPHr zg_S>Bn@;+9W-2w=`-s{+(tl=Ve&CNuULWN1wKXJf2J-n@Jjpj5=lTn@M3R4Toa-;p z_K)G2c>i>%wuIyrz}{urYLeFidzWb&NPZ697g(-sCHYUgxIdR` zyHQU5T%jc!{5mUth4u~UV?0=;T_b&r2dlJSNsjk>tF=E#j`w@3wcHByC(3_~rWo9f z<-bNNi7aD(U#C3}94TXeU#C?iIp+U~R-5FQ|0h}y$|?W#S`&i@vi#R;{Yby|m}!hR zXhTRpXv{p|_eg$iJs&Ue+C-B7zMhYlcx?vBcf~AY={IWgNq#zJ4e(NuR~#6}c$2o4 zD3$l#yI!W6}jPW{2J4lT8x7)Sj#CU(ZT|0+N{@tNnHdtr* z@6aq7#*4fA`TV$Bvja!Uz6bdHxLeCh^4TEYqdi6P1bDw^kM=CdrDc4-vsWum^1RFV zerK;%4Ve4SmzB3qYie+L#{0E!;*n#kFg~EI1Q!1ILW?!npUJ<_P9n>%?BVtv*3J|6 z-ox!ZtX&~q4Dut|4dNXjKcd|sKEIpmAJzUQwu1bqChO>r+-vy!kfJ$>eb?~umZB8} z7W3mVt+(^x@o`KWXz(k{-ecN4WVzP?UfwBf32>ww1^zvyts%Js{Cis4K=Nn7zo)fC zk|%=x8ErSo&w&0J?GVYEgZ`J=Ns@zPeeq?+@3j~go z=O6hQxCzN?@3_nOrq+t&O?Ny1Zcp;-N!FLyd79RZGfh@mtkjJk-v;)NT5Ayi+hjxs3$LHl)`g_`0;-jC} z0KN%sm}(&rL4f&HVTFCoVDsYPE+jO$a2zJVC; z>%8=>#CTulrSB%b9nHs2Eb;&o*3WX&8=Sr7URpRx6c1?eXM$W zgPXGYSoNXE@;C7R53>Fq@h$lO2U(v)jQ+LjGl{CxDK#794W8#oqN z*yGTB3p{L(Loa7AoX_cXkZHfC>LJ9qK2r7O#JE1v^w)@SeWdA~fJJ$_J{{%Me{_AG z!GoB6x}HS(xE{-=?<2^CybRWB1@vEtx5ECa zpni{dKkTmx>bVMXe+YXE>D7Tn{4S*X8$5>DTS#w(Oz)pRqlXdW`{&Q--GF&Kn9tG| z(?=S-oN;k|4snmQ>lpj$XHcK~Q$oLJZ~~K;(EmcF_9&%W3qkwQd0;7BBgXwiX}usZ z?k7s?#ff_zB(Py`apyE`0>;EZ!h!ndhE}2^clq1pX=xgh_Sr_^rgV!eWCz;9m*;Hy81?g`TIn5 z^;4ve{tDK=CPse+>)#WjKSK1IB0aoM6r$fHMt_9rQjv%K5vtpP#dv6-7ehJO(?Bm{ zFkeqJ(5sU^#@mLvKQYGJhI)vRo|n@|Z)Wgctba7p+f({pJMFdEd6nLcc-T%ZZ>;w* z(sTVLdW6B;-%a$%l)f{(pVCa9N&FVPpVCbKh#21oZmusQ#`l4n>z@Gg@tU8N-$LJK zaB;@3==@jx`1#WCb!8a8s`FprW9>`+XsI_bxH6Ns)O#Y!FT5MbxQ*VAxZb-Bfrk>W zjc&pCHT^x}&!XD^Pa+;3*Pd}(eFpKwxNzVFz@mNH>GIPL+tW_xzv_ne@%Cw_7e|({ zeO}kg5@Y+ku2(YBbGHJsMOnuu3ewp~` zi1Cbj=r!4|V43BG>vau|X7X^oJ+eH1%{<0$>)n9){b3AnAClwz(@T#aInF=5^id?o z{b_G~0?BcI+FPH7a_TRA^f?BvVEOma50QTD9Xl8g&`*+n(;fSOza}}Z=LYImNRI2d zf%;97<9aSaze93d&qe4G`;{l&es3K)%<>zg%fONH;3H>%^N_q1^w+_95t8?Y{yJDM zN%E#K-?H>WbpESh{P*!X#QXqU73EaFp?YnDZ!!5$y)EhgFu?A|zRzFpMEbuB$Oqh$ z~oAG^`peWA6H`h zo?eRmii+7E#^@CcuFd3Q^oGc?J)#-o@%k&oc_Z2a^Iz%W{`>;g=M(fdiNA&Q`2_uK z;+X^Zd2W>cF7cWH{5&^G9}XijV0}h2`DDE}aCG4l%id@Ffj$J~@~%nz{mBpXNa7Qd`1_L|=o5)!cTHjGr|Hv) zx9o}ro=@C*#B9dV`p3i_Ml1kc3p`u?V%Nuvr|TPlqvhkfRse4W7WJK>pG1A?FEjM> z2J?76L;n?7rt>%bPhvWM({uZx{|mr+Z?>)wmxJ}*Y`p+7<^Q4njKMtr5A~{)z9hV_ zGFPunTpiw5nX3m8e+}<9&C{C@{|fIn&C^>WQ~vYy_6DzI^_{Q3OX=}_k&pCY#Q46* zM>_x272bc;^;=o`h5BUTXV>oqo`p>LFVa6Un8)Kq`dUi=CCqm*dOYzZnD1irZAN-t z&SHJP!N*wsi}hDaVEKb*s{ZVJNq?Of7QFd#Yo=# z_$bEP^)kd^$HxJ`NQ~!=JM@=`@w{<|UKd!*r#tmnlv97%sV5jbndP@rKS}zv;XY-L zexA4)+^6i(uMn5~d@)PESHD4A^YgX9cZl)*`hEJ}#Q1*wK3#qm`V*DEUw0au!1VX) z6_Mpn5A*%>LA^S0(qZ1859)P@=fZt+vK~Ub3GSPd_2$H(EBXIl9nxPTZnu*E|J5PA z6R?OchxO?wCwmU-^9)X6_8it%lRp0c@KHUE824{S^{qyFUau6L|0)c|*F8)>MK4nd zSbhuspYwwL0`UmApShsFM2z=~7xe&QykESiHy|!Kmiyz9-h#OPSniKYdOPB3^SJyQ zy)$uRcz^X9{Vn2w^Z5Mot=^wFdLEx&zSV~jza7i}Kl-vhhInu+|NrRA`efp9ApcIE zNjx9q-{~I_5rc2B z^jG!kq>t;XANAjeaeeip{ueR&Yg4=ti$=kpZZ+l(s2Ipr@n;v_l>+g@9V3H^Katqd0&qQ7XJK8*UO0h$e(}dg$ypq z>hqT#giQNSFJ}{C+<$sGTN9(db2-}+qrY=GyAz|ob36MGqrY=I2N7R_?{ly^M-l%F z-{)X;MiFDY@ODlk#(3fFoQq8DVRJ4vn8!z(GnUd@Ch_mNOdV`xY|2^eALHZxS{8r3)j`SD7{8r5Q z9m&Jt|3Qm8eIC4yz+${ra4ttV*;B#!iNU*B`U=iNq>tx4m7FJualBP>eoc(~!^+Mp z#JE4K?7T^g_hVI@cZhMnTg53o$Lk~Jx2n!6z~cO&s?*QlW6Yka&b7$$>6!e#Ccqg_ zd}}7ZUkY$;Bkl+9lhk$YA$}j;C#mZ^OpNb;)pMRA#`nMKIWG`D4ga5C-}yapnNfWH zs_(o-ya(p5K<8cJ<1l{(IxWv*`|R1r=eHoIo%r-Vt{>#gOI&lWHGsX}<$Q`bXs-kK zS>hjd;{I{Z0|yhI-dKZi17}m>D;w(pw;`UjqABBs z&JM(@RS@$Z8dGw$fDPOJ}E0bGX|=l4#| z5MVLCcXBo-dA`|vKI-gzjkxq|cpu5xiMSWUhc}(!q(21W!<){2B>!wN*YDySLVR>F z*YDzdPjG)O@9LaLe6c^5cXiGn#_#9p=A2KA-_O&{xs!vA z=DZxTF`7e>Cc`icqhYb448t6%$;e@}P=p-vyRPf~`rNMH_m8ihkJokGhwHvS_jR9k zUww=plmox-zQ#4mvAy~lcU*rfrq|bat^u_-{k{hpEn)h74>VqY>F@6b8LzOqo(rs zVCtV|8BZdo{yD{X208W5DTe&Yot!`QXRnEK~b<0Y8-=h;SgnEL10MlUkfZ;sK| zb%ImTp^|9ryZ!t;!o%Hn?NgnG*JkRRI^CH%SZCGv9{n<+0xPRG}DV=YX_*K{M7 zjQP(u@?EzR_2(N0P=3q7SA`cC$CSqh?>i{-1xBe`Ube$Rqs(TU%j#4!6jW-&SWEqz!M|)=(@+)p)`oglm&JqJ)(fsJ|IaV9;D{gZB^!FUA zjc_vRuQB|tmx}dWWAsFMI-YDYK7gscHyHzAYR}Ea2$;P?tJqR{4;kBQ zmr>-py2y7Kkzy(2_NDE$*Qg8A_S$PSf~mhNG@gU0zbiCa!PMXFGhTqHzuRZL3R8c# z-*^+I{%*g~8>Z)<2aEwQJ^wsl41?+KKZ=YoF#Y{Ukue3HwOzLFLE|&{tL?IV4;r7t z)L$Ml7Q@tE9x^hO1Kabkv6FJN*J0x)*YfWv4jYxlUMAb?n7aS{On*;NVl;y3?T845q)QC^h7->i+(G%9!H1vDjZu8DFD3?JsAHRWR)@ zXN(;9>$UQF<*bnh=dG33D`$=G;V;*<6w^Cr?1R^=Yo~lvIj}v>8x_S<$NS53-gwxx zJYJnQEOKyF_4mnT#$zy7@As4$Pbdebcfn}m)|b=0V7%zMvzY${<3rS^_rc4JAEQgIE4E2zVTJ#SLF1*@ipUj5ei@xjw3PE&qFSw6p-D}2L{e|1UE-#uU!r_mIk0_$%sBBY zy}!Q%nVnphiSj|_bTYPIusH{&?H6n=g6Vp#ikSh^^;#8kHB8rQRn3hsU9VL&x5NJ= zgtQXhcQb#0tB>?3AAsq4EX0(5H6r&Xx*iKLOJTa+s%DnKbiE}$Zw1r!(j(@-FkLS_ zV#>b?xqpA5x*4t<*gnHNqscf)jk#7y~D1F}AyA2IVd zOy@`3EQRU(h?^H+IzRH8f5CKq%TuU@nE} z{HB2^-y)a!xx7!r@;+&9fN$rGRhDm&%bd<{o-zwyI=^|!+(*XxH#Cp9o+j!yH04|5 zvi|tIdBRaIv^Cpw^J>3pJzDc`b|)1&i=CT263&L^HV zTf_LCn%N1a^MPoyD@^AD(dJt)oew-`z7Ny+z;ouuFr5!HHHX7=KG4)0N5=X$GpD-V zCYHaMnT7JyKesS*VCtV+nA>3LpJPq=matqu>YroH{V?^ z1x)>Od$YZA;P=wOe2a1{PY3gT*F~beI+znspWdJ9WKM(W_}|H#181e47Uf?w~BH_Ui4*6&TTm+NOm{Ws0OQ9fARzZ+=YQXU^1uI}FrG%Jd? z1myD5`N|;kVde3-KRL*(fjnM)zi_bWARnl{UpUyTg`A#`4>6xaPS3}Om`#w=^Y>58 z=aJL%_fO1r$m#uqq2^04y?-#&lyBis`^)zahMB!!djDXU*$<}o4~CnAVS4{yxH$@@ z_YX#x6JUD(V1zjxrtOnp&VgzBB$)E87dd}=|6rt<0n_^jBhA$?-5(ldZd4B39~xzD zM^4*sv?<^Ekkg~>H`+V^)A>ZAc?_oWiA1v$ruPfRm}Sc2gX#T(G3GVp!2Qj!W^d6- zV*1!0#+n0M4-xyrSaSk7a6iwSrX2X*K$1BJIo(egZ!Sbm_fy838I)uC6HNKm0L@Qc zPfaktMg7am<@MG?a~FJXxy&b;g>HFSZ<1N;TIQ2X`IK3<57nP+{_+3nPd2Y92aYdO z%typsvis{h#q_xzC)Rh0nMB6(kyJAorspH6W-3h2M`oMysgj&OJs+8EE`{m&#T;`b zOwTXom>XbvevxK=3)Az9G*dn`lGCH-7jw-*n4VwEHIKmb{9>MY0;cB|^UQNFJ-_(e zyadzpi_gs)@TSi;i1kf3?t#0?{f1vOvl$uvlOP|Yo>Vt zrr+lZ^DmfwpDWB;aFxUI`PEAE0dW^au8;SyyuMs%J`DFOlKCn#6izIX`6|;<4(zX4 zW+TecURmaIuJ4NV$ud7ied?dro5Nx1pVyn?;JIt$_45XED!hD+ynfzbrohonWu9ZE z!yTK-JjeVB{!4vNcB8ohuB!5l=6d)eRezJY6;4$7CUX~DUyTp3*_3z9WP7ww<3nsV zi^*8OT(iWr{9a$K`8Ueb_rA88x0L1IZ^`!BYRbD(a(eWA?r+V9mB$Cu_qo3{Yfz5q z=b4UcJ5JnxGv}c`9Z!EUzl7;{`jaWIO4ahJ_uclIYhmhd_L{jcz3*0N=EKzA6q-N6 z)Zgqg+B-xQgZ#94}*KJ_<6 zW;K}ln}cSUa-hFCXmaG#-ySk+Bd7lMkl7G9?eB-pXJOjk51X+t_2leiKJZ8$XYPtS* zznAx0OU&msr%cOrvdB-F^-#Xw_B7$sW+QmS zcA1|xo4V!YbbmKnxn3;t-_3ZGzc+i8@L97L95QF4azB{fZ#`!YhUxv*bLJ>zIi6j< zD1YAkTv?81w_CW(T&yg|vy*w5nMt`A|9YSB1=A<~pT@f`7yot1Oo9)#3T`9*9?&d< zJGQPVeBEp>{$G}VwPkDZU;mof%5wbU_r!nQHA~=-n8D(|DtO}B%JTDqQj;eOKjaw% z*NRCIuHq?z%XfYyT+MR_9@{2M*zojdNA+{|ZWFHINruJv>%v}7DQsq+6prwOw5Re* z;w}k0o_@;bs@$ISf!JRnJ%i!ODb-#I5*`Kb${rx{M?Dji#|NLt9-=%Q`3;pn=9z;$ zbe+r}^DGL~Uq4d#aZd*F!|TT>uSR}eouAkAY=m#A^YfaX?XXupAFAc~0rhLC_bY07 z4j><;zRy+La}1uTzRy+LQwnd{EBk{wo-+8iy|O>3U#c#L)H0xUC#p@ zWPANkrCokS(em{?Rh7pF_sFlJ9Ev=Dr6FA3V{}Pq&*g8V|(tCN9z`a^U3%~0z zx={XHD_OsfCjsuD=HK5_2G>>dALNODnaU4Q^Bd;Lhu>7w8|jI9h4RK~dSgB5@RZha zc_w&n!bg-Rd*WY}<>m3OyI7uN&m=e`=6&HAo^rTi@<`!SkFP70uMsm)%q8BI>l4{X;bC;|L948uQ!+Lzt2+&&rs`k$P@B9m5)^Gcf>OQE>_F;vnL&n zR?Bz76Z8g^->H`Gw5I|5s9L_Wo*D48LfJkSJh^bAwz7Tx@EC7W{k1B;*B`Hyyvs!1_E$$1ksI z+8->}bo}D3>G<`iYdU^C?wXEYbzRf(tAT4eel>DU$FC-?>G;*uH66cNxTfP*Yu9xA zYU{dli)P~Y-oZ7kPiNN$TfHIjS6pw79Upi z5#_$2sp|I^=x_Rmu2By3Hv>X9DF^zS0ipSni~dF~|3{%wJ>>8CTm@SGA))CoE&uS) z;I}BJ^2`dI z1c$^F2+s*Ehf|Y}3#W(rdQtgWF~18h3{8N`cU}`-9GU@-Z4)HU1ilUpd56l+{>meq z85#}Whd-vc+cr*kO=!rwR6j>8Uv_9TTv;t&PUsSNhFZQYp@ndy zTE4u{2Jcb*X@zqB`JwS}qqcJXJ43VKwJQHUv;^*@^4;$C?%X0?l>fu+);mKgnPNJ-ctH~*O752g+FxNvGr}? zk6kZ_wL4V^8ti&QtER%AxXxA6AK|)sYdQTy*OyyKk9U1GR(gu-g6HM=<#gAhVx?!f z?x5Cpj%(U~(p^_n^Izn;s#?FVTyIeMH?FIy0NeRy|tX*HP@G0N&oA5hg!b>Tn|&rS1~N``>Uv?7wnq$_iC;; zsNCbas+wQ8>x*iBj_V_>Pm1Mz)OE+!_k?S@KKDEqS2}fEcWx0Q+`u*M|BYN9Y}G^L z&$v!%Dfg$Qu7lO}$@8w~D7SLmvGq7nzpd*9v5SQ}xTf>Xj;?c6{g+%#AybM!LSJmS>FX zHfnjsyFQ}Uf3oZMm6O97^_Klp;QV2FSZC$H`NNE`Zpwl4hZ$kLC>Q4svOk&`Rs>Uj zG&?NzeK|dOy(;^o&%-id+MWx;j1MTM{%CR7Aej22rD1zu>W?zQqWe&J>W@~0ErF>& zS{-KerJVYs^W>P-B0r>@`lH=pNy_qib-UPK zehSNiLt+Yr_lMQ!FU!vhs+e3Vd^ju?t`T!d_*hsbT)y)Gaiv}oRt%4AQ%(3}SmOay zKQ);P{~p#0t`$>H_*_^%Jo~Gr!WYBJ;Ttg>gv-O?KBD?LdwU9B4jTk}+YS)E5|$7D zyhGkO_&cl|j%o9m@b$2+A5;C^JLLRthb6(a+sOI<7gh@AsP%uq8#0i}S61u)kas9N zZK_=VhrLVS>&@l*SN8@FqVhA;`ql6@h9lMbg?rQBVzqp>Hy@5x%jfsj9ZdCis^zQc z?Fv7tmamRC2cA|a+vf>yDcq>7Y@a8+(L<>IT9rq6d&9j{{Uvl z{-zw*|C@NrD6c^0C(nA@eOssc|O#^+jST%51kLaV%4UcVeSh%OR7;duWoN#Y%&cuznbMuP?o>fII%ow-b^?o=2hYOUf*b}PjX-3#ojo$R?JZ0uf17t`OYcA zncfn3Y@0d4tG%5PseX={{swO%Tv<&&*IN$HP}AS;^^KwOk!t!oyCp0`n`JC8)?p_JJTqq^XIq1XTWs+{BHOin9iU3gb$cb z<>~x+KzIpE=g)(~JI$b+&Yy>e=fQOTJUYDQOv>r}d0hAmn9iRkhL^*1{yZhT(`Qtk z&YwRG&r+7Z*P&wj&j>#bhr~<}P6>~lCCkg_Ve^FNh7W*i#e5~49$pBS?_4juDEuZo zw#_!-#o_TORKMBO{lZ^|PlC@iKPkLCyc}M+LgrcFzEmpT@OhbMhbO_o`>zXc49|ka z(~6hH^ZW3S*;GDfuSYm9JR0`4eN=dRcnbXO>?XqBh3CN+W8#E&hKJ0d`r+TnJM9JG z(eR))eT8?2r^D~ekju9>yZ~++BbV<$c!M;m-+Qmji^JpL(`{saJUkzMUF9dj%i%*R zKNa3}F4do_*8g015*()1|6+IN@vf92Cd};6uwS6D*<-?JxeidJ2I@NEYwqG@0C-{`wex@%6UZ$4c z>nnxptL3+R?dMbd9;*HPzM*hS)qaorO5nFu`_%OXFQD=#RQojW4T8I>ypeAayieuN z_$n==@+oTmO?^?Yq2~X*FCE^i+OM^*0N$qBudT1<=&dN?>t+NcdG><1eWGSe1A4^@1Z+9`DPAmllo{<=^z3fjhUIDg2i2xi4k?!11=1 zubXn9j8r*hzU`;M`7i#a9H=_3m6>?AMgj_3i>+ zHcZ#Mi+zz9l+*b`hA#!C>)jQ;pk{K5bu+1c zEmi*)UkY5lQ$DFX>C1!1wkZ_;-B)u3l@H$kn{b)03p~B;Md5N^E}XOXj__Z;GT7TT z>=p6*_QkKH`tQt;^S|Sp1h-Z54~i&{zya?d`RV< zh#FZ`ey?i3@Q7G=n_7Q6A`@Pv+AlJq7(SxrUo)clYO3EvwO_r6zVInk|H+6Vc!p}f zrz7sbk*a=^h~8_ceh;;N%_36ZmMU)%aT9)9Eq`1@&9zkigj)Xg5i{VfDt|E|7v87x zmm?yxsr=f)#-csDMRbCDwQVgNAMurP;P?1u#CGMt@3BY356XexV~>a;%Ek4Fyub2R zMASN(e$L)_F}+?9Jz#I!4}{;1Sf?DA{`(R8l>^iNAmXTUVEP|Klu}-S?$`8*=(1i; zU!HHt`!xe1@?kpP8XQq~1LbtTW>`czO!sR>MFizgPWNlZM)Za0e$9l4BAD*iOo@ov zNag8%&8HE`Fx{`29&rVx`!%y7;x|!wx?eLVA|IyvHJ?Y+-Ap;%uUQz80@MAP#SuZd zl+*p1jEF%nonNhpI1bbOn$;1pTc|wUuUQw73DfOKD23^M z&36&)zoqhYzvlahOqlN1?1>1@lli=$+EYe}?YTFiFlwPJo0E{({8%Xj`Fd?um{9^0l|xGbW}cB;R8y{!LdL?XN` zPS(E?Q35xcD)Va*!8@q@x#lvz5z!a!G(+aMBhuhTYX1L4T!VA=R(iEU&;wRvKGpZO z4Hd3rCBWa#t}9&G%78D%G!YKAuEA#Z3&K^c$nU8BlDOA}t653#J8J%>l?As|^RHor z?4A@ysWLPU(d>hA647$ zNvi}tptfHlE3Sa*=cw)1#2N%wR@<+sbsV0dwqFaY()Uz8QZ0Wgt2ew=u%Mh?EvRKCwV z)@rRhKKMpcnUA$Px#i__##vomPZ!f4XN^St=yA)0CtBm-HsjVRPlM-=+bTTCnhmcS zSD?HQE*^70c(V01d}hqg%31I;>U%;{tQ@%IZn=C@tZiiRzLQ+Osn++dWj@s^MtS#cMuNeg%27`g^8K>kT+gz3-T5y$6>RjuhorSpDHMh2xZmDhK}FW~G%# zIo5ZjHOY1BDDk}AT7dfV)%>!orSLK}zbtDNd}x;3-m9$*@TpmHe_d_mkum)>R)K5z zecLtGFDU=As-JD0hCf#Iv#mei3MyY`U4@y-*I9RzM_=GCyE-f~(K;2p3shVSA>d{1*J^;yS_yt@q)l7eA@|F-+g5I%Exp z>HAcNta0$5)W)LxVQVU!l-g7|MLE!3#nx=f(O$*Y0@w2WNi><-)}x*ty30% z53xk%N35-GdD*TmRquU3V7wajR_+ zZLeCB#|fXcI>XOQ{#3a;Oygmkv))!7A57z6oU{5OKQ<{%ls|6`f=^HSQh6j?+-!w# znKd3h+ib1!G??1^f;Aha_P$^(gd48gB+6g3zJ}Yb%TvyR+pFKlA6Aa?_~5SU_wk3d z4LSY2NxAhs^5>G}@u}P@QVtvs|Fj-GDBD9GKX!@f|7kUMy)b3d_?%N6?rI7 zzEt>%^_=TJg#WU7!#h_0E&R8Ys~k9jXKtq$s4DxPG_J!haWelrO>7 z!3g0S)^)hyLBH}nn2y&st;&aK`_l3Hre!Dx_RoKGyiu z>Iu{D^|sXqrvB=VH4vu$>W-B_#`N!6Nv{7VrhnI3i}JMpRkSz5wEtDK^I_V*D%pEr z+P^B<2VvU39<+akY5#iAJ`L0U^^koLrv2+7`zlQPS7rM)O#4@5yHc@izd(Bh+YOWh z+b`H|?7F*HpJ4lCaxk_3!}jYiwg1ERyKqU-2cmq4{UQ8!(E#O7VC&!~!qx22aKnQm zl_x0&mgf;Wi*mH@BX*AKBvJkm`zO@T+L0`5*oWZFJ3dqX72cC6zqfDNzr(*}%J1!) zcDZt3ejfW0<(QwxzV2H7o;>!0M`(YmslGQIYFC3Bs_#vQ+Fmm1*RZ+kxng;0*lkdL z+k{oZj{PEhbiz92Zg7u;Tw!MSga;;USMCGT@15HNl>>iY#_a^2ZN z_4i_We!GYqO#N9c`#4PfSuOh%Tw||X-rDvB_|d&`d28E$!-G;~UdO%#C#A}~j$QF6 zwbuppef+xi!|*@q`}lS38Zh-|^=t>G{;Zx|3#R?MzWpRj`*(f2iE?23Jz+;vj`e-Q zj&&{nzVQjW8|u^b#gleVn659LwEMu+Up-|HgsH!J%1%%Y%&(z6n{v#rp}oNMiEiTW zS?puv;A4|+2{*A%!lx$%b(b!K-$|}4{H%Qi{wTSc^1m>(zZebX7_}$0f3#f{ruKi% z_Q2Hs&)GIi?cdaX9H#bfYBzwX{hQg1VQT+ob_`7I-`s8kQ~Ni!J1Ym;BgXDRIocz} zj(2@kw112}4)y7KldbHjFnw>bm7N0rx>TNTx3<&avrFagueJRZTv90WIC}+rrcmZ_ z_Imig`7&=~Z-uL>zsG80?;>OQ+S+?v*XS!XA_ z*tg(m>zgT8I<6m2U$B#v1IN=B>=f7X`rrlo8**@#8sDOmy$0T{#<%EXZ-&RI?_<4a z?|^5i?_<4a?;&G-I@?9A+ll4rY~MwBx}JR1e(-17f9QJhRr?XR>+Bw)d{^5G_niHK zvLD|3oovt7>^ks|-^uoV&5nZUdb67y4b$~zH@hWVHEH70;(c?w100$(Q~4ETc|I~& z%rD;V?>bTVbvpr$T{BVm4SOlo$NIi$uXO#H$ltW{$-zd!JmI(OJ#b{fBISed81;Sm zp7zghviiP!Py4iTV1ItwuJMa%FU;?4+i@-D_qP2s8S{I`ZVJ=<-mzQ5-PQcwwL8M^ ztNFcacU2C|?>&18<(S`l_GhlY7V~@0&Om)y{`c)Hn3n&2dn0TV$m8(`_BJ@OKpu}j zuzyev%&(7qlXA?jj~(=DV14EM`q*A_FfD&So5QsH{p>n0&F@3IAx!i8(2iCP%&))w zA?27~e|w1QRbqbq?PSzXSSbJA@gqA0Ua(O9z3@l&eE7xBHjDBf+h4)2eYQ<`B^lEn zXs>r&Ao79sPLyw>t_KF&KfyiJ^}t~Juv=cX!w~yd*E64~Ap8f))Ayl<+E-!vKGabA zj$2;VA7)o73AAUCnEx<4lpOrfiW1@BwhcQgWIo)ksVsjF=Y>buF|Pj>PO#(Q@YVkc zkF?X>yi&Zlzi6*>U0ryzT?j8*?G;Y6Lrw&iNB%p;uHpJok&m%klJWhK33dnN!1qTc z*smb3rH%&^?KhA|spG*!`#t0|e$*tpKXMvBYLYz^IgKAR*-k`G<3~-lCnG5S)<=TVOBJJnv|x{b)E+BZ?3&ZkrCpx@N`2GjX;id_Y6xNd+bpK6f zEtswcX4{X!bUiTJegdZJ_c`|eV7h*vV>gHC`aR8#gX#J`&3+N4{&ueY8chA|T)QVs z*YES}4`8}}pJxw*sXzYQ9syH-{JEV3)Af70oeb0Ud%B&f9QZxXx4)qr?K$6G<654d z%(u6p{`NWY{AGdtJ$z`6%oo`El>^gTXcxKlWxFr5kGmcz+IOKHc9OOSeb0WW&0zYT z{ZhL&OyA%9+I|YA?{9u>KMT|MH#6)OFnxbB!)_1L_q~?cU10jY*E0Kcxa^BrVtKx? z-+?Q9Iam2ZxZ#(JgqPbx;I>~bRUQow&R-#%X-|a5M~dt(SJ-LFzheu`|5?*Uh_3ngceGo3(DcgIK{WE-gr)=*{_G$R`P?>MGFT&M^$$YbYRavgj39-DncE~B&9@1sP zTkM+f?A4crx7xjx1MTsxJ;1fRfB&uhDLI&yce|Ym)ADY&7r=CU*yvNiDF=RU-`VDA^?Sna_d7enb@gY({ZhLv8RJF%V0Tsyj2HQX-5ohC&u;r| zRWJq@PuG=8#Y!!(}8PxeCP!20a9 zH!92aza`pxuf5;(gRfTzDzr=B*^}j88t=0o`dwfD{q`fS<@lBRZAQlUl?UuvFwOsf z{gkqtU$~fFk=@SqW5NgRUT~kRdcue7B~%~neb~-)Eyo8wY=2M2{(RKl2UB|o4zj{%pTN4yOA}=j?Z3y5Drp z?hn)b&hz#s%7Ocx=j}w~)PI)QlVIvU%j}sj-H*Cp&xPrJ)CK!XnEI!S_BSx~PZ#aA zFx`*(!`=+j{ir|ee3Pv8&&cV1=b!c&<-q-qOZGEo1MMUK zy=2F@miOl_*#pREuWR;DnA+=_JqD)s_{W|MQ+xble+E-~T({@J)E?LE#W1zU4SP9E z?Qz4-hN(Sn+PN^b$4&b?<-qUbU;6^(*#7_8f4P>&vwv-IC>Q?*#)rLS2g7uK)OOOymCsIfGyt|2N1PsVskw9mV`AII~@M6Mn$SgA-T3C0x-l&dcSH<@*X(a_YJM zMEF4`4z93fl<-5&B;~;IyRtLG^<V!2HADDeXD7Tl zb*1uNIC1?t;SlFAJZ*iRa*1+adscJWm#OWA?NQC?;#zLcYR=na9KRoN`oOe3A8`h` z<>hp$I|;63{p!xt|5x8|W+?}b|Av#UEZc97SU%HP=lZa)$0>yE;lBunIw2SI<*nh= zaD7(fHJr!EV!YNX!eP!6uxGf;!<@!$c{v@g)7eG0s5za?2 zjh7nX42NmFRLdC)(|Dh1feQ^mEM{-chc z98BMndfcf4)AytvccNe#FSVu<4byn3HJz4ZEPpMhgKI;yM=j@Vl&9X}r|>&I-4@Y=I3caSaE$XjJU(r(ayz)i$OPf%otNNOM~+pFhkGPU7H;A6f(Ir{SMCSj z8$DY%))@>}OH5ZD1&QD&N29o`kq=_rxd2| z$F+0HP@ldZ*UtG1`PLObi0QR={zblL#X;o<%BlTdI($O7gHsjmark%T8p?tG_XTGX z<=7uyaAvr^D9XR!tU!Gl5A{W79Zch)zUXX)AKQLUl<(~9grm1teN%cbOwZ?Dat_1v zeC{QugpB!jan87wo>QsSgJk(bm4@~2sc6BV6#zXDuJPy-%sINIs zz%(A}YffY3!11G-^8w{po^H;^u6Ky#>E?_@eHsrn-kAc^`xf!eEVsN|?$@1k*Iv;c zuRFI;p2mCX<2-PQ){n+}>f<~N)AdPTClsdZlfI4v(|D-;oSHC=huY715~lHVr!8G2}M^0au#(Vn684T0!<6~!} za^Uyzu`>brOZys&_890)gM003sys(IuzwD67E+GwG06GabxToxkdu%4bp7**vj?W@ zpHG~FFtx`}=VzGOW2kc)uJzpuVtT`zi*VF;U6ikqG5_JtZP#)<)Zxz4mudUac&JHE zQ<%m>O>$bpG#=`Brz1?`p^kUD!ZaT01g8f~|{^4z%ZF=Xc7nK9ik4Tz41iJK6DFq4lBb&1p^~OxH)#oO&>|_jIQbOzl10 zX$n(&&v077)ZR0kj_@h7_Y&aNNYn%HNYQ|GCaS z*C`^O>->%K329lvi=12V__X!P75}34O&GpK_zUM@IC=OEHa{5vk0d91IwHY zn6A&4IjfZe$Iow^layn5zH!Q2pAgIcjT8Mhtv`*oxyFfw>3h;^oDML3PkOEMGECo- zUhBL8)Ayvaop)jSo^-a;ACCT^YL5y*>zq&ExE~DVM7ZzzaN+gNBzVaB$CPKn$2LAC zyuq0ZpWFDH@|W=3oNwS2%R4Hsg=zoY=xl~*|J~^1lhHn#oIS2z5%o7Yk6oqq zq4y_uIrU+Be{z@eKbX$13Y=yzonI9=aqu?>MvLiv?{tE54~$oS4gMz~S@;L%Ex7u~ z&y+ua>G-|d`B*t{{NC-1Kz?ejeEze?83$jTE1&=Dagt#gU*$(91*Y*;est!;FCCsM z=J%8H72M4Oak|5UQn!lbJ?gv- zC#B{q_f-!3evUaGQjYaK<_vYcTa-WM{DAuOdoFeM!?eDo&M}zIA5J+ZVLE>}<&?p6 z{66hmf$8{t+W8lzG=J-Qx&H3hck``rt^n0jt$fK!&&EXn9d*0It^et ze>mqfhUxs_oD&1n{&(JKqa4`(&O4ncNBfjH-CQ3R?NjEwkNU?po)Ny_d<37{DDw-> zaJRf%uZzxD*Rub(=qyBe>OcN;zE%$OAAdSo$f^IhOU?! z`^i}TE6!2Zm&Nj3ajv5L=Mx@!OT3Tg+*X$3L53(-x=!2U*v3%dYfgyr_~3IJxpEkC zI{y6QFqn=%|2VbDnE!R>DcAKy{p(H)%5OQ?MEHi&Mp=#rDf1gnXScjuj+;(5*DXbU z)0vF=w158R%!FzG{Lh&O_u2KXD1XoS5+1Tkektyrvm6e~k?*Gmv9)lE9Ql5F5X*&E zZ;*KfmJc7?AoB|BM|hU1{{TA(uT}LQV818_es2|7$PLw=Xpf4lhU-sX6Zfy!Zx+)tA)AQ=8Yz%xZ zZ-SWK!)!8qJ8!0PigI9mLYVKSzCIx=()D~%K7=(Si}8h)30Gs!!Wnrouf}5C@^U(l zu=cLAMg9nzjPkTTVQeN$>l4Q2!E`+JvM*seo_g7Gn2x96Y%NU3({Ppx)BRi@%ZKTH zu8;i))AQR1b`YlLw-M|Yn8qiv*lC!?C$iWdFddI=b`_@MvCZx%2intN|51+p!(k8o z8)#qoywqW>$r!Kjan=#0@d_VjU154&T9fsF>3L~Q_C8F{OKY)@V0vC!iw%eAd1-An z7N+N=wb@jdo|o2PvtW8&T8E{>^t`k#TLRPb(zovmF4}}2;pe9$aPKO=U5J$KJf|RrtF$>;Qn?qcE@!S zkvC%zx2Zko{`T|iQJC&;KhNsJS*h(s`4;SHcynrJS{L(4U`V86h0Kk+Sg8m9Y+Z?QjMx}VsSU4`j>Vo!Dlru&I+vr2cV zJ?Vbp+pHQ)=R3Vvm~!BJrx)YM>3-omtTs&d3*TW4VY(i8mpu#9^}xF<7N+}!@3HpE za{MECzwkZQRXK3J-J2CqdF&6pS)uFYVt?q(PLuKc^aFNLIq?3`2ka_xI)CWHZX>7j zhd!**e`@_P{k|;3wH&{wFSE%Qzo;L39H#M)`mqLXc{!aAS!36-{)epf|Eu4hb^L$z z`?Idff&G5~``E27r#FBlxX$S*{$8CGkum(ycG6inBv!`TIxu2+Y%zhSyw z9l>tFbiF!)RlG<016{8su!mu~UQJ*%V7gu%$sCxjS4Xm1FkP>XVo$($Y$9ZctoiR>kq&KDC|JWS&kjbXiD8oy`^>qo}+9Lol~KHXD{m&N9x{JqhC z3r}EQ!qpPxmwhL&<#3OLd%_dhT6kc>gKtac!Xrk82v1`9@U)R0mUjxf;aZL#G=((?62k(B=d*NvGlMmT>HKB}i-BqUpqZ=;Y3O-;KCFJ`a8`Ay$a?m@=#FJZl1_ZImQ_6f@O+dfG6D>fP)v0dh0u}N-u z`MX`pX1E?L@}+Dk%HNwkRXBsKghS?}DsO=4`QS44Elke`m$3rnQx%34%ISZ@ZdR4; zd8)#w36CiUKTM{4IjdVk&zG}knDR_k;^=uMD~Bmx!6wzx^A#)&rhFwUds5F=vYRmF zt5`}CJzvF^z?5gP^k?-vi)F%;uVzc4^?WtUhACgeGM>}(H7p0Fd@ajts^@E2E=+kg z%V?(O*(?X9d>zYduIKAmE=>7)wkJ-{*R$g=d@b`}d$zJoPL z((@gxIZSyzYdl`h^I05B`FG4WLC?Qqbz#bPvKkZhd?%|3Q@)EClk|KSi-ajJU@4RJ zynro%DgT}sQ}z6N770`S1IwMI=RdGLFy*^h<5WH0&EjCn_ptQ&dcKEc!j%8Wa=+5^ zAK4z5@}F4r*LwaFYY$Vtm*r&W`Ce84Q(nk?YxTU4)rBeF$NFy3^L;D$o*!VzFy%$8L9w0}vF0%42U+Q_dVY{yfhj-4(tg+TLo5TP{4iT|M$Zqk zESU0QmT^|ki&+j#`4N_RPS209T$u8sEbF|UA7yzk<;PfNnVuhGxiIC&*^&!-ew<~) zl>f{!FY5WvEElHy7nb#hp8vw~V9I}GIpuo(D=UC0FJXCq>Ujw(gegD4@-ON6304GC z{u|qKSG?%g7pD9VR``sb|G`RN%F9_&jGmXX6qxcq zS@QFG{wGU^DZj*0TIl&Dwgjg9GE0lq^UEv)ru+(9)Kbr{uq>GJzgT)JJ^zbk!j%8b zQd;Zz-)sp?`Bj!4r{`B$CQSJ?wxo@oUt`%Y<^QmZwtD^#%YiAs&X%;(^Xn`dru+t5 z)LzeTuq>GJo6Prup5J73VaoqyX&v?aUzPz=ev1`$)$?1d1g88ptJG7^Z?hUO<#$-{ z+j@S7`C!WLvXEYSewR5g<^M6`9XRB@^Lwl&OnDH$*-y`dc<_g0$}8|I zFr8ml;6eTM`~hx!qSt?bN5WLUA}<)F=M{M|OnD`qH(Jjt@j{sL2YGIyoha)TFb z)pLWF!jzjlvOv#G9tBhG;l+h|?%`)(%0qc_v7U$WbeQrQym^V9*WjIC%ENfv2|W+v zU17?-ywh)b?&UpT%ENh=lX@P`d%=|Zc-K-r_wn8^3Jkif+>HL551u0kMc<{<&W_}7xnxxo&;0=I3Mtbo^pj1o9Dxn*Wp=r^}G(xgDJ1eOCGAEonO@Dc;H{pda<sr^dgz^X8aCJ{bw^C(pk@&^FiJ9`ptO~O!Z^<@m_i!!^>dGpXW*a z^!$0A0#n|CpBb#@E%-H<@>pIpO3!0?DNK1werB|ux8&Dg%3JZ9iF)3O2ah3B-kRTm zY5iOCkg<9m$8W-v$MN8CdftWyCF#>|!ws0G-v>zA0aMv?q7t^R6)EFY)qhJ%5Scfhq68lfKpSE<6RM{AE6=K+j+1X)xul@aRH4 ze}%V)DSwr>->2uV@_3l?uDr{BJ@3kU!IZzodmYg8*Z3fq@@~9$k)C(sLt)Ch^Pvaz zygQ!+Qy$L~59xV4p8-?;I!`#P=dbf*nDRIHwPHPggI792ruk&QwkPm_> z@6QXodfuNG!;}x;XSkjZ;MZWvKjJg$==n!{5ls2Vym6GCf6U`x$_MhCMtVMw7r>Mc z;*I~O=Yx10O!;7*(^$_3^8%RiA-r)DJs-m3V9Gz?InV0(C%gcrd?;`HoSqNmaWLh> zcurG2AI1w{%7^pD&GmdZkAo>6!5g>H^AS7_raXbCzoh30JQJpTB;OOS=Og)XnDS9P z`5iqU#nWNRNAvs-^?Wohf+Nm#6D_62AjeKAzWHs^{Z*W0>*@e9$UApTLt~$|v&796g`Nb79IS@zQO2 zK8as}DWA;KzSr}~JOieDis)bTe2VB_$dpgzcZ&6VDi1lL=gB;~M9-6XK1}sL<+&&H z{8PRMrhFRD|4q-Q@gkV=>Ac{io=@k+Fy%A&o>D!Z!H>g~&*Vj?^n4~Sg(?4xA3v?< zpYbx7@>#s(cRioQ%VEk>`0+D(p2Evu%2RpKSv^nXr7-2QdGR?tpUuy}l+WSE&+GXd zUItU1#!JieJdIz0DWA*BF6jAOeiNpA9=~!?&*$-=Kgg7S&TqnWe)%~MF4yyP9`vVP zKb;#e)t}FUFX{Pw?t>{`z>Uj#zJN!iL&E7N&eLZ+uP97xOrn@+G|aKYG4|cY-PZipO2o^RIYUnDV8((+xde z%6q_+f6cqz)bp=-Zz#S<#% zc@|HGDPPTpKA`8T`6QU~HT+sdJzv8sRU%WqmJfYU&)4!vFy-0&+CzGt%_~*b>#yU9 z!Fs-q&w#1^dVZ&hp0DR2RrUHCc$r7fH}IP<)z9I@ww~wkGce^Fd3jAe-^lO4lyBk# zYU}wXo(NOEnU~km^UeGYOnELJP*2Zuc_K{t7G7Ro&$sY9Fy&kMfChTLl_$cKf6IG6 zqvzl9p)lonyvOr;p2r8klyBo*+v)i>-W#TTJHPp|o^R*DuaGI=wx{5O6Rru-y7vrf-X@@p{VrMzIPo|p1snDSFRE>F)-@vboCr+L9PJwMHhVak8! zaXa+&+<~3@^d`lke;98$uQ;T`L)A(ex6q7Fo_J2rFY*~M<$v%+m-PG(o&{50&f{+Ac{%S2Q~oE< zzp3Yc@*OT76lJ-@^|!IWR-xwrNFGT#GJeuX!_tLImE98CFNJo`UA|BL6tl>g16 zf+}n0H-Gb3nDVPUsfwOo-lwFsScU) z8$7e2p5NfPFy%LSk7zx=$p^rc|I3Y*dj2nugekuzo-gS6E%AJTO!;k|@QR+_=E*SS zcX)$0_52QR4pV-Ym%gXxcli~V^8a|$M|%DrkA*3}$IlGa^LzXnOnHz$JyFkt{FyN2 z75q!a=y?TyHca^g{>-s@{(wIhro5s*dz_wE^ykBrSMuj3>3Jpp9+>h6{dwc{{6T*q zO!-6pf(d&5kiQtFyt04KL_M$UKMqqK>@S?8=fVCGnDQ$AqRDz*#a{|jUe#YbMbE4H z&%l&F>@S+C=MVc!Vah}Ndy@4$#D5&7yqdr8Q$4TdFM%n4#9uT`&mZxZ!jxC{7f;vo z>i#n@<%a+G3_UmeWiaKYzhtJKoBnc`a*x0CGd=hCufUXt`pahNd8q#;OnD9el@vX% z;SWkBQy%8O3DfyUm_K;7o_qa4bM*RNzX4PIaDSyVJrDQSfGPL+gXikG&+mgNkMM`g z)AIcI8ADyk| zkNexhl-KlM$<_0k{-7;n%4_-iey8WP{0T7Swf&Jl>3MB`6ij&?f8D)$UdJB|Q(o8K zpis~2`kTX)*Yij1)AM@%SeWwq{s#N?yuQCVO!*W3r~`Wbgg+Lhyn#QvNY5Mi^I^)L z^hX`i^C$hWFy&AA%YM=Gr~Efz${YH7m*{yz|4^9nD1XTrJ&*F2!<0Aj*Z5P<8~JO( zlt1lHyQJq&`!it5|K~TZ==uNrkuc?r{gZC#d1HSXO!+hZGnIn1^NVNv*I>$<_;af1 zc@uvDO!>3^8sU2WtiL8qd9?qyU(cicWiaK>`DfJ8^XL4FV9J~NV;kyuQ-2qj@@D?_ zQF`9Y9}iRB+~1{&jcYRvVWBk2g%Afbg|4+}K_xFV!S~OVDM9VeQ_c?QZ>rS$p5NNTz${$aD zc|OmXGiPSb%x)&=#y>-qPIdZcsB(1UpQ*~;==9H273jwQ7Iov*PXAlf&FIGeR<-CF zr~j?$7Ifn;RyR*``is>a=*B-wRbK1#&r;Rs#{V`|b)D1yHWfxU{_E8pMNa?qY7M&a z&sJ5_o&MP>jBflT>XtV-{Uz!ybmPB4oqV&?e}l4S7~S~at}16b{cl&*=*C~F%5QM` zOI0Ph@y}6R?{fO*s2+6Ve~0qk#>7T0>p&S1^ z<+2 z5p?5!x7u6d^uJpjMmPTVsE0r4^uI?PKsWvyWqs)M-ze)tqZ|JMSsyz63uJxh^#7OI zyV~jhFLfB*d4- zjsL&ZbDwki|68Ti8{PO9saqPH{zd98bmL#Fwl_Nci`7Hu#{WKb#aEsF_o-{pjsO3t z#;-a3|4+4`8-Inm^jl7Ug}MUW_?M_VTAltSY7M&azhBMXiVtI|3TG*Zu}ook>5G}A5y*O#$Ty= zo^kpsRUf+XFH_GPclwv9=g^J+!>af9PXCA10J`yiL_PBdr~f1BIdtQ{MLpf?^xvXR zq8tBm^~?#Uf4O=N-S}@+y?=E2Z&d^6#($gYd)Dc{O?gfl-T1520J>SQZ#$|ETizIsG410d(WPL#6dQ{dcHK(T#tl^8Cf=U#YUu zjsIh+>3OIBW2zP1`0rGUQqmpkmpj!h=*C~I%2S>GYE_AD{HxTBX-@wtbu+s0e_UsfQH~vqnEz_O; zPpb#fjem`5d7IO}Ms=VYf351c-s!JZUFgRD8Pz%4>Hmz1pd0@^DpKO~-=libjlWLy z-r)4tsR4B3U#t4w?)0x!o>HS5|GlbezSDoN3ZonUXI1Zeo&L|N0d(VEry4)t^siGb z=*GWZ1#WTr*Q-2q zf4?e1H~ufFimy8TUs6@*#=k`czUlODQF-Xbzg0Cn==5(@P3Xq|Wfl0A)Bk0ahi?2| zQ4QaA`oE%@(2c)Q1$H_8jVce___wKz-*Ni4sqN^-|5cU!kkkKF6+$=uucS;8Qu7IsKzd*e}`&8H~z1yv|l>?Usso+8~-;{+3%eGZ>S1%<8M-1 zPCETf>OpklZ&tmho&IJufNuN`sJTgF9M_iz)FO1_|E9|JI{n{NA#~$^P#w;8`X5x! zpd0^ARTpsjcd7<-1&>zw{?D^H%$jlV?=pquM|i}L0>{kxR) zdT0JFm4R;ZzoR@?I{n{K+33dqUFDtP^nX_c(2f5gm0jTUKcqtF#=l!#`Ua z-T3#aikVLTUR8x|{QFepTb%xVsv6z+f26A3>h%9eh0%@w33W%Y)Bl88gKqqts(O~w z->K@*jeozo<84m=ezgYO_@7i&*E{`BsxZ3o|5)8J+v)$Yx(nU-52%wRPX7UA-C%U% zKd5ebyVHMA-Gy%aPpOloPXANNn&Zs>iMr(-PXABTUFasiOI5zd>F-k2=*E9Y-Mq-@ zKcwzJH~ych`lU|)PgNtj@&8O^f5_?onF^sB|6x^M>GU5~jp)XIL}h>2=|7@E=*ItZ z75J#r|8tdxZv4Mcp}U;^U#LQKhazQF-Xb-y_#+r@u!Pq8tA)mABjJKcqb|;Or}%{?y=&=*FKG z^j_oirv(G(#-AQMFvICj4?c}<{9}UkB~JgCU?aNmj}6}VE~kHN@Md)5_XYzuIsM*X z9=h@Sf(PE`^!tKOqZ_|J82+Hs?+@0a8~-K2x(_-1mjoNojXxt;U+MH`1RK$fKQp*- znbV&c+>UPiS-~wIcKWk|5273YxM1T)oc?ja7Ifp!4sO52>CX;6gl_yf!KUR-e@?I! z-S~5Z+i!LHbAu0|8~-bUTW)juUlDu|-S{sJHdZ2|08mBChY<9}7~!H+uquL?elZv25@%NH5V3pH9G59pP@xLb6^>L^FHNhTqGWS7>_s>J*9H%N%ISY? z(6U_C(Z}@9Ki#8$uKc(qZ)jZo3Cl{d-u%Oi43D+9Eh8h@+EYJzZ-%^6NN0J5WX0Pv zGTe4#(pe&JZ`HlheM_?Y=8?YX{v@);dYj05?pZ@yiEY==`lE@A#puy6qdNLJW*@zr ze=hog9^t#cqW72iecZaCziV$2-hpq$yykbO*W_w@G~Q{^ksj(q=Ws@b{8tf~d+tFq z>I17rn$I6t6+bg|uM*i4&)9RV-@R^Vop_6$6?(SBw#7M5bc>0Of~Y<5QJ}rC8K}oZ zZ)5a09a?`hk+GP>^Euj|_;yYI&%dADGOwbo>(Lv0G!5sC&J&$$&UKc3R@t{c@wx77 z-o!J<`gpwExyKXFQq$JBqTzZHUsKQ0v-ME#<>9w(q?)7eN&M`Mw>W2)?z2aF72AX6 z+#a`{5Di$=SS#uL}>`E2S~F#$Tb%esw!rizCfy)2{QLBL4akZ_)P% zZmaK$L$~F{vd6C_UfgYr?nmAK|0`qeyngA?NVG-pEo^P<7^&pjsb%!#%VJ3{rfAi5Rj-ijWLv-NgpPn=`&?3Z`_e}GOBv?qLF%J^cW_Nj357@`*(2b@qJ4i|NPsAR*s)1X7p~ikKEvh`!O0bwDrLi zM%qWW4|Ci_E045aqA^2TAAXC5ZhN$!7uv4(`*6=r%~lNWJ)gc^vVG{7M7LD;WO#3U zTh3WD^qe298K0%kA;a%k9Y1m(UJCEoN9KHcr7M?j7-^3TzxPL;IU|ky@V&ioTYBO4 z?2F&$__M_MS)xaQ?&0OvkF=Lxm{*?(^*l**JvHZ$7gj%U&u_BN&-ywgE9Xc4*{xr= z?RqgPzchQ~#pwCaeH}mZT|wXl?`_`dtu(h=eo1?XQV9W(*x($ zjn01dE2HV#=&G5~yKud|(0ga3>(t9{9L{x|6K`GoQ4?=*J`sAco-z$r$K1JVZ<0LY zialqDTI_SU{i*#+8yOvwq3cQAEB(|$A6e!zl;I-d$2mUNY~yfGIii(yi{{ur+p`Eg zs^@;EA3xL1e%|=keo|rfiyreN`}vPYMm0892ix^}Blc-p^!pxqe9kXx@G~*}%qP+F zKwW<{k+B%Pmt*}LJcr}AH~#Z4vqi&w>Nnc{yqw2Vf2J8fs(L@ZkgXo>=pOyCAHU8? zd~VU78pQfako7GjCpm1=zMUVXPi%LF2wUUv(>tlB>O3!N1oJ~=TWh~CGy6e zn+>fHo#D}}p~p+quJ@yUDyW}m4cC_O#@cd@Omy|7d;ah6y z=1e%)8ymd~RUx{^2e+R1JRI$t_QrpDGT3|Jd;Y>l?`+%doUwZ5N1vrfpXk0^p8XCz ziaqu-=Vbfobc#Hkj?FRW@vFBY7L$K|vyu-IUw8f$OcW_Vs zdE0m{^GeU&_$L)3Kf`|^@k95*=*RHo8tFW@IFHuho`&h!HPWX-=d(v%$TR=Jd((Mt z9D1J~-MSaIhq~JE{l9Qty%#P_ySnnl&wb1}u6 zIPVsnR|NfZZs<8pUkyjf8X7%dgktZ?1rPT{`%C zebE>_AG9}mL`T=9`pkcReY^N=hvCQbrP(7FVqeFv_lB+_JTiY0UqSS|iq5x}J}X&{ zk>UEOpEKwqD0=L?^t~Or;?gr}xbf6SV)Q%4dmb6Ojf1`aSGQ5m?f)w??OgWV3*D}N z-C6xYN9IEAh2d5X&Z~d?r={ksqMw{c`{w*?)R}9p&S(3+mcDlDvsR)jyZ%J!{Jn{v zR-LUsBV`SKVs@_I;5z#gwwK@cre4VSzmVJuw-?TJubp3f;%$##hs0Z)S8Y8X^xvb! zjy3Z%BWh2)GBKaS#;+5i_LoOi^z7l>qS!N^=r@0&TYByzFxvWwD<|s7iyay3;b@US6~M{CfEByiYI0wx7#h7;Y70&clhk`qQ!G>-4ek zr+f78?~*$gx78*;)e~R>D;{A_1S*Wqx$@O>qp~r zofch3$IBa*BtB`_c(Z<+T&iP|@6z?nx3=E@puUIN`Xl{4jehx=W_2`WWTac3Z)RkS zu`b{5Y%BhE-MX&ewkssr6+Cu@WV=Gjs4C34L035WS!aD+`JT^e`?NuJXUuTF>)a1_ z8n6ES33>MGwzoRTDrnH#eovJiTi+JF?GMPeU!re38~*(pI>vlUr1nmIzMa*i@8ANm zmy=~b>N9d}!&dBgvmDQtdH@;WN zcj?uLU%ow?WL;aQds6sg-IE9G?|8?@J1y)Dti^=tiRw(x`&5n>mGjb zHobrM%FIc&ZnB@`I3weKpSeZ%O;?B>7eU#Z$<|YHOr=<_U90!$@e+Mp{C1i?F4o!a zDT=RiHjAEzx~=HBqRlb#W?uc}I^737mpt}dO19@xianQ7twpjI(&T8;eRxKW&@tBY za@35q{Hyi6(tYz;RXg>(dgq#<<9xQh#d?)?P>*D>{7kau+z?+!Z-t)cZo91{ImSnd z$(MJs#f~hUYt9vVE0XMB)y7{(UxQK98A8WYkz_n-BO*a zkBeyQBcJ`A{iNQ@zr90`@NlCyQ_dA``>z0!WDe+k)M(E!JwsCLtw^c|5!Z{60H?sK-N?dDpx@;+VR z7wx)lw|-Rj?R}qgMxOugQ#$n6e(rNaD;WE2adsW)wzPNfp4E{yf=K;N46>?{nVl~6qr`jPyeVx3x{kBA%2vi5LR)-9TO z6+H@KmYp2A+VX}S&a9Dt*YU$|@5s5@Ypx6W44Gt~ucGHweTGl5&+w`C89vQE!>8Lv z@tE^I!^isbTV|2&zu#UH4%lnLRk!MK-Y4hzWb2jp>pm=$pQ%>u!?E16&4JNJ#zxN^ z={+)MJeFE9`U*NSQ_kUf?WE^zkK=kB?Wb<#Q}+7pt@bDHQM=9^Jm>W)<^Fs1w(FUn zV$b~4K{J2&v-G+3+06fsd`i!7J%5s{d^y*7toPLE);}aylN9SR*%zr+-&6W5s=lYM zs^8h7uc}Y%)>qYMAJ$jZd%vNtsvmAU*VadlkL?%dSeZUwTd({4A^DkP{qiTe&%gfE z$km))UHO4)b%nP{Zj$wU+=|PzV#fIy&K0JD&eh}Kmes}3n)*(`ZHHaetN8;Z#ZL|zw0e+v|G8( zZlzCt_gFQ1oiWbeb-cMM>GQ2z*W{S>SkvW9KKP0-d=GWx@N-+w#{1=nNVV>i>s^|a zB6BZY&gUc5ua&z_w|)Pp*HQY&dW&31^&O36$v5+5t)9x~gU()!ly$ak(cfKn+m-cm z_{4oPcO}ji&F{vpXHk;%9l17ntV0RbmZqj2?cvY)daOpiu9;kYyvsfKQ;GX|uIp{R z(jH^4SI64d2(NuL@g-c_ByKS}Cb6x1;cH{((}U=pl&*i9oMYXV^L{GYy0dROQr|1N z?R8y}tm~X!^Sh35wi5kadk3G}^*$ZEp3%AQe=xpgtg>J3V%+vUPV{e<2lrD~&_{&Z zJ|g6u&)ak>cguZHvURugJjMEm%=WX*TXV*99>2f2YqVJf_H&g1X)(!qq-r!-I_8+X zJKb${$hlYFQ4W`-w@&v>_LRiOwnE!ye@@%e?jCBN(xL6s2HkV%_%-%lAezw|`8@MK za%D-iKCn`sXY~C}y7dWp7BR*;A(pZ7L_%Nnu6LY8o(T*OQI@kHTxsK~`OR~o;`dm@hOtHr;)gHGr8Ml#p<@D-SqGO_e|EA16xAn={ zx)t4Lk9A#wJszuIt~h#MN1v$ZekNOb{-;VQWrgpt3gl<9)opM4@yB&5b05=lX_BnH)2%j{KVz&d_6oD@YkDr7ZM5Ut9mz8C z+}8K_srCq@S(&olNVg`-Q9s5$(#Kj?e_r?JZW(8vbzIhXe(R*HkT0>H=w{f*d*+LL zyvILz)6Y_p?R&B46P0s$+NSr2Io{2hU(ZR8Jtw12()656wdZ7-Jtx!cV_A>DNTceU z8-st>EpFLua?f>^>Uhtm^!(BDA@NyG$Bc8VVazeBw=v0D^{C#uopLXeY(24A&+5x$ zwx?Q4Tl9SE|F+)0KW;hK?b0nq@85NEHIFY6ZHAhSBn8gM*q z8$3$!ebB9JWeur+|Ax#oxAnOF4iIOqxqml%Q_l^LJvWl=m00xt{o8VlNIQ>vcHM5W zT-n|7RM{R+>BEb0Z*KO{Avu>O$;iZSySBXHK4aH?Fn6iuiD;trs*Z8q6+ZBk?&rDQ z6^>@5XU^oNC;B`o$BvvOnuKVviDlgo;b+)2s zsmIc@G}+R#G{v5!sg|C}=RQ}XGgEJio`-IG9wymOkUW;2fyrl`fjU<|`ElD%e&mX8 z-$f4pudm?>DZtuTb&dIZR~NJ=c-Zzne4Py^N1^e!EP!p6HtrQM=yu_-_{J|D7@T zI~%%{M1ONP+Q?Y7SpS{<9J$W9p8;ZfDjKcqHk|=_GGxXohPcP@8~Z~|Mganz9-%5oLi^IHs0c#nYz#C_uq5QFDrJW z=ufzgzmYk=taItrh1lvu-!6-d z)o@;Ol>PIs9V4GDoyY$0|7+~xStxc@jgHvRb8q}PC*ERm_5TVPe*F;tA9JEvy2V6q z^mU&75}(`8wZ-_J$6MmpMd#Ye%X7P&XU+@vUtRRJNB`SP{9g)0|IFsb{v)}dGGNa#^(yNi^s&#bUp+{ddE8c$gqr>!Mxb?=x|2SjrCd{WB z_k4Wl2uJODZy-bP50sa-U4wU-Z?OuUR`|qMEsfg{PsosJTXtL zb^XE5#LQX!eE;G&{!FEhas5|#iC5GyZ~Xi>S);R`{d{;X)n2S#nL7HoyAb0!x{-Nt zw`J)5jh|QXmiYUZi!0LjeRr;FAg;tJ7uHMnx@sYs$M?TvqS6m8dd z&(`jR@A=?kEjIrzzKuWrXnpy=jo;iKy^y=$_%(*Pqa6MoR-es=_YPhAU3>}=e}``N z+6y1&k@v#+de3$L>T^i^HpXAIM`LlGSM{tu_it9{JKw=)Z{4@(GZSb1bBWXy61}n6 z*b`qDbp6Cx#y))3X!;+E8NBk*_QY%53%|YRH%jN1bs@)AzX5x+v*^Ol(tqaooL^i2 z%&eDwzn|YdjydxTm+M@WMXwI}JbdvoA%-j>nUf3YKD?T+>y?WOGP zg?l$?qPzI$97}u`9QDTU5xxG`$7%HYX+!62Y|KZVOYxP5n|1#>k;7e^%oq;m9sG@D z{XL?8?e})hmA}6md)9Yv>RDm_;wjM^7xgH;7;oUztz76gG@7^Joy%W~$F^Pn9eQ*e z&h@Q~cdyoeXQ$r}lWzZ2@)-O5Fk|ia!+5Pl^1g!ec}tAx&&WUZ-WmPd8VA2;K0!XBmHjvf;c)KVv(bJA7d`OKmz48ZaQ?36$;fY@GJjwH!rv8kVXgwE|N3)~7jl-4zOzeLJNLJQImgrd zuIr5EodeExqrWGvR&aaF{_pYbtl0LR?MgA4NWDiczAwv+r1{H{m)rZY2EV;3@jlg` z!O2^!?eBo;v!BOap5PW0VP`rS~;_Pe1{&iZaB-C}gbrTb&%=ioO%CGKbRZ8_Q-{{|=hHsCrSrx+ z<7c&F?#bJv-PVPBH_nBA^UP=Lx9DH|d2s|Tj=;qcxHtkAN8sWJTpWRmBXDs9E{?#( z5x6)47f0aVV+7=XipaCEkbDp43Xwe`ZSohF@*fqfJS$b0YE7}mi2V}z{SvFtQbJ{2 zV@(uJw2H0EgqK;ftx3X3R;l$`;cKnA)@0#itIT?x@O9RWR=zObDz~l_UTH0|3WNn# zg>{wiD(hxzs&J}RXCY)wfS=R}#v+l6&wfrJkB9mO7mES)rzkgPK-)QB# z9us+7WS>ZmE7!_#-RyaVt5Rf-^$J&;b*b1cb=~55mFTaQ-(T&j@=O*^cHQN9o$z(8 zuqR)b?^@%zQh24S&Ql;PaIN!PCA`X2@0lu`>e}eJT6ndq!81)b&9%jIo6B$A=E@S8 z^GJE@HWtTP_i|NRo(0Bv~XyBvm9$Bwb{T$XF4th)={Xa*0TWNTx`Z$T*Q~ksOg+ zkynUZDl%T=l_IYa35ZM(d9{cV35rYG6pBn0d85eHBG-sa6S-F8I*}rg=^}3ud9%n2k(nZI5qYafvB)fu zw~1UYGFzlX=$`bNVmwZMSdgFBXUgSw<5n2c}C>8 z$nQn|Akr&xLgbGk&x)KBIVJKZkw1&{iSMdYs{&xxEC`CpO0i42IG5qVzZ?;=)` z9RDJ2kt7k1NU}(ZNUBJhNV>=vk+C9P5ub=(+k#Qo~A~_BKab(7r9boib#RT z8$_-WDHNG1@=Y@;@RQMK+0iLF9`f4I-OG?icxz$QF^UB3~Byib$i#Hj%H2 zd`)D#$PSUOi+n?*Nu*ii0g-QtJSehL$d5%1h#VAoO5`UZT_T4> zek$@ak;5WKM1C&v3z3M(QITJY{7U3$k#3P+i~L5UN935uZ$*A5@{GuFk>88_L8MpY zgvcL7o)tMMa!TY+B7YX?6X_TEi^yL^o)bAO^1mW~6B!UWBl5h+-$g8s9RDJ2kt7k1 zNU}(ZNUBJhNV>=vk+C9P5ub=(+k#Qo~A~_BKab(7r9boib#RT8$_-WDHNG1 z@+uNCTcHVFg5ZfixS*1N5beeyNJ#V+Gt>Du+!6w!B}pN1~C@sAhk z{K@DuVTpVFwl|7h$LapAq`k%HMb?-#E5%-9EqFpcW)uE#-8x}0_G0YC*h{gOVlTyB zhP@1X8TN83yK%m3P=)o?j+=#*#8nbkNn90i)x?E~3lkS6u8z2R;u?r+Ag+P9M&g=? zYay z{9X9l(X%ZxA0lj5gzbv3T|L-)u=il^#omj(7keM$HNbdzTxMQ)TxMQ)TxMQ)U1on~ zyUhL!5EmdWK->|D+wHOBUg)bG_I#GOy`py$*DY~fqKC*2VGog?hdmE_9`-`)h1d(R z7tya``c+C?DRHI5l@V7?Tm^9z#8nViNn90i)x=d3S4~_Pdl-8ddmZ*V>~+}dsoOx^ zM&cTYYb36TxEA7CiEAaUmADS<9oRdtcaq;leuTIPaS`Hru=il^!QM-LANd2s4G=d# zoX5>PaWhZc%o8{B#LYY*ExDfUb_7L_w?0MMpuoqIdh`PnZ6%$uXTq$v7#FZ0Q zPFy*071%4VS75Iszl!{7;;M>b!U$?qaRLR^Hn2ys2wd$9Ll@5SDWy%&2QbqA>HNn-yevHz3U|4Hos zB=$dX0pbG0g|LUPhp^{i&%>UFy^y*^)Ga2in7Cr%N{K5YuAI1X;>wAuz+Qp90(&L) zO6--`tEgK|-7s-s;=;t$5m!%K191(+H4xW`y%BpO_9pUM$ZsXCmAF>oIJj@Rd^TWgZ@Gw6-%n#xM z#07{85tm0?A#sJo6%toOTrqK_#FY|PN?aLn<-}DGS3z6_ah1eX5m!xIHF4F%g|UaR zhq2dTuftx4y&ii#_Im6MwAV;`O~f@3*F;|X3%?Agg?UIdcOya*8&A}&N+ z9&v@l6%kiNToG}_#FY|PMqC+jWyF;eS3z7Qah1eX5?4iBHF06$!o-D%t0S(SxCY`H zh-)COG5OQ?gz_w_G1+yGULWsspLyyHwr_KObn3dbu2+0oufGnu|EoS4UoG~7?#Z@(+&$}F-Ja-Mw7-M)I%uzh z_ByHGMg0hR4|*?oz2x;u>buzOO>cz9CGcz9CG_Ij~_Uu&7PpO=r zhzk)HA})`(LgI>uD173KdY(lXA8Mc ztRlXO_$uP7u~%cS#vaBV#vaCAM?dQ6M+0#U#5EAtNL&+fEyT4D*Fsz?aUH~U64yyw zCvjcayRdg*k6@2rk6`biZZCEFi0dP+kGKKiJZWZsdeh8&@TQsh;7v30Asc%(_H66{ z>;dcn?4dL>Px7c+NL(Rtg~SyRS4>&a`G$4uOzOLxJu%xuvcNP z!d{KN8hbVNFm>ywTTfg)arMMC5Z6dt6LC$%H4)c>y#;#<_Ez#c$nPYslekXey0CX) z@4_Cz9>E^L-b3A9>h=-WM_eCq1H^gK+5hS6|8(|$I{P1cHuh}n0qg4eiRc|Ok6Q>rNosHS590xaplBS5LZcD6>(L>RS{QBT$s2z;_8U2 zBd#8MJ@$I+4cHs7H(+nX-iW;sdlT)o&|WKXt;Dqw*Fjt-ab3i95!Xdrgt#8!dWq{L zu9vtz?0wk#un%A#z&?Q8GluKJ7_JLrxGsz_`zd>jnJ)q20>lM~3lWz`Tp@9V#1#@( zL|id(rNosIS4v#j7;~L38)Mc*Wn;{`s2qDa_HyhM*ekGCV6VhpiM#^5kZ@}Jwy#agU7_)9`9AnmPjbqHZt&#Sc@HgRa!rz3y zg}N=&ZJ}-}_Ezkz*gLRyVDG@*iMY+=bx+pijT3)j0|wNCr@xts5O+~$TyI&J%t+ny4xv`qebSI)gZxBcI}^;g0o z>g{tkJn{!yH_xey#{Tv3Q+C{wyG*^OHuT&2hDZJ`oX7L=^d$5Ae4guyTT|Yt?JL*$ zgdMC~J1n!E^IY58vc-Pd3YET6I6mpj7nMy@e|*w&_vm(tWgMo6y;R0wwyV$xS0`H1L~lP;U`QDK4fXO(cCYv$vtZBBi>PB<-Td)s}&k|g!% zjl!8pIjg@UY_}G_U61Eh*YmT!D*6%E)<<^=Gv)c{L&EW{H@;opXBAoM?LV+}^St}C zd;1eli9RoBRngCdo^bUoSbTQyw`Pkc%q?pPr2XG@g>`Te0GNPL zI*rsRCa>5sdBxP6Te^<%f$^RtpVmDH)EP7if@snZwTpVaB2P9t@~)Cp53Oq~Jhc)VtQdA(+SHBiUv zHS?^6It|ompiTpIvb|=W2B;IFP78HH)ajs33w2tk(?XpH@p)czKFaf&`B3OJ^C3cB zguDoOMYLZ``=zwsL%mYkuTA>Ktde(IRu6T0sMAB8GTJSp-E!KkpnfIwtEk^g{i=V| z|MaYPzsItAsozWeUh41T{I<_!wyT=DVd~aV*W)thg*xgMdd+5qJQ|!JgcK#9rYT?%k!D} z*hssL#5EFEOutL%cNzU|CBKY*7g48`I<3@crA|3@DyUOQoet_$M#r1{4)Qz5uVVYE z*uHAEFG7Ab?MKLukRKtxhqy3x!qlmwP7irKWuA}_{>I_h4 zfI1$xIS(|^eiQAt(7wmb`M}Njz-`V4t+d}k`<=8Opk62Kx6pooIsxhgsMAHA2z7d> z6QWKJbwcEa$Pbadd1}R(eGm7iis;G&gzQ;*-w<8tbhQ>UCd6~u@997leRBl=lEUIlp-5$zY#el_)q zX+MwltEp2>ooecYi7%!7Qra)0{V;i9^1|fRkylP$Ie8W2)sa_6ULAS++}nS0=|^Rq zN&lMGYq;56+FQfmB)N7<(W3>O&siRIkby}%YPn`9YR`4RFXydLs;$m=Dqi@YxK zBINaw*Gpb+v^}=Bm+kFidp$|!e9*`CcG7Q866b*=&I3v2JTO2V&n2wyE-}YJfI8kw z%yAH*PJlWA>IA40B0l>Pa~xz}a@=0u2QD$kYlyrMc_H%h$P1AdA}^1;Jo56$%OkJw z5_9|((eGmVT}-`V`W?8$9KXfXDW*;_bxNsIMxAo%lvAgiI(gJ7r%pL_%BfR9ol5Fd zQKy1BRn(~V<@~heYYPLVj_E(Z$hrbSg{XhI>zgAMOl6qnC!t^^#yJ6zO#5K_G zM*7`EzZ=MJqTlt@X`oI6bsDJCNPG+ZY@wg6^s|w?M)DfT>!AHk+V7(MR_b-pek<*_ zQm2(Vt<;H7r-wSd)ajs3FLgS|?;yW}{66~KN52Q?cPIIt3^T7i8D?I4Gt9j1q+TcW zI;q!1UN(8zACHIgjED1#$DC)%GR*N>o?*^26&ajo z$gjvS=NWH?IbH+Q2~a0Mol5FdQKy7Y&rb@HfF zNSz|;M5t3l9dD+YpAqUrs1u=15AnrpZ!z0j%J%k<*F#qCErVaC+&68UKi~}ut%`>VDF{9 zKH3|gy%6mU&|WF~Jw&@9+6~ce5%FEb6%kiNToG|)#MKd3MqC+jWyE>1%)ItynR%U^ zW#)Ay`Po@!UN=yuk~)>tsiaPTIw9)hQ725DJnA%2Crq6%b;8tXAijsV2I3lsYap&K z#q9UOEOWdUW|`x?D9ar0eJN(Y_obNq-j~8Ul)Pf{ipeV_Z-Bf3@&?HBq?-21$SWhS zoIFn|^DLElmTKDbl2<`q1$mX^dCBvV=OwR-@vLS%!;EK$dSS-1D9fBDLevRSCq$h( z>eN%GfjULhX`oIib&9A{M4ck)G*YLDIxW;GqfQHT%BfREoigf_QKywU9n|ThP9=3Z zsZ&XvO6pWnr;<8d)QM21hdNc%>7h;)`Bmgsk>AVy=w*NOu|KNGAHY9=-!sn4t7__1 zQ?HtO-f`wQ${uHqqrf7F!^Ef!{mp?nRy%i;?BEOvWy2$S$ zzl;0|wzq=qtz>&65Ca;>jYVr!R&GB7Czl-U2J@ty|cOcswU-i_fr%pX}N~u#uopS0l zQKy_bdDLm5P7`&Ss8d0mO6pWmr-eFI)M+8Vh5VN2II#WIY=4;T?<7A=`<>)>lHW;w z7jbpesiRIkb-KvwBCm_Q2zd?UHIUaxUWB{|c@grO*xnYlx0UVfqh2f9TTj3HsMANC zKI(K(r;|Ee)bXa9hw}4n>xMJ$tFLW{A}|3*#17Y ze}L@|knhRiJ|>6zm>e^&1JnypFF?HzdD-M;lNTT_L|%xz5P5mzg~$t$mq%V6d3ogJ zkylLK0OM3lTrqLQ#1-an+~k*r<^*a)G4D*Id!V2 zQ%;=#b*iXSMV%_@R8XgqI#txEqfQld@~BfsojU5&QKz2xYR0XaaSJnU_2ku)S5IC8 zd3EH~kylS%19=VPHIUaxUITdzeN%Gi#lD@>7q`AIz80srA{w(da2V$onGqnQm2-$#BQ`QBXCYq_k~$R8j-K>h&v1LO~oAIfFDmdkoA*BqaoG2EBnFT`K; z55GB|c*by_Fvgruiis~KzLfX?^-6Qi@evrq^`HCz`Gv&g5m!iDA#sJom9gFBYl{Z^~B zN80mS4_i;#?Hj+BtFfW;p(TzKgElX9|K9eG#~*MfJ!_9UdeHq!(f#tKp#s}J3Huf9*|t6zJup}+{<xu3IH?;iIjU2g;RHoEgf z_sg4oX4%~0ey`0&_ebrxopxN7yfsI+pCxa*F-%S}{mD*RXUAWf^hKM2r0q6?N#D2g zClVJ*+H2ddNIGaUkGLu17uxw*^7a=~zXUFZOW+E)60U}|a0A=~x59032W*CIupRD) z2Vpln2K(V@nCvnAO}CjQZ_qIMc=Q1J1oWWC9G@YNIX#D2uqv#etZW?+K{+ZZk!Fg~#aW}$p;+NrH4r}0QxZY-( zRgb;_eWRV9W;LXkaoLh$#$_vU+h8-?3ESZwcn}_fM`1TS4o}!jvj))5pj)YCTwJMU zTr*(~oCqhu0yx#C-?}FCPxkR%lsfj$dLB&2J|p!twmy^iS+E2yfD3J=SrzbR`m+?h zGF6X{%r9G)^Cj(7(cUWCo@Ld*_2ku~Z$RH@*Ol?6-d6nE;4Ziu?t%N@L7Qn-7y2Re z!_*q4%+U{pioxd9q(p&HhhLGy5SO=D_iA5}XY4;Z!&cPKPt$JUAaN zflJ{ExYDNIx-0EEd;is-htuZT`fB3V!u4=7+zOlFPS^(9;eL1!9)~C38R$wk9@+$7uwsk5Pea4rL8X}ZW&w-SHe|rHLQir@E|+^&p_W8 zjx#t37Qp#%CENga*i5q?ge_ytaodK!9qxhq;C^@r9)ZW<33vv&#xmY86Hb5=;bfQ( z3*b~Z3zoq7Z~uxz;qR;S}^>?vX zufP4)Z143pOTA{jJ=d$(+ga8;;>)~d-8~=uMz3CX%Y62l_4XpKS#MW(&3bzYaW{MS zN`JDfrRbI3V|M>;@w)qTewA0*yu({0%(7MzSM9yY)>on5<^7ng*Pw^Jo9w(b-f!8g z^X|8~&ih-N^iYn{wZ&`J|BYU~{`Xtky?Wj6x0<|qy`N<@ z6aS!BuluvCo#-uIv;Kd`tJnW>f92Kde!0K$>h*q>)lOW8SFihJ9fZEutJnX2tJAC3 z{eJ6!_iE{v-|F&~**xrBZZqP&*Y598@}BlK+j=*8kGIo~d&c_*o4wvKf6;YLdMDfL z^UfA#S^dO6=Ur;+r_l$zpRx5b=$6micX)jIzQb>&`ON)Bx=+tbzvcDm`;9Eiho0g4 zhTTrKPv1XeSvlA*_38TvxxYmZ_{{x8&}Z%^LOydpafMIcPh?q>iOcip`-&_pAAO3? z++P&>eq{G^D)wu9$8CKYdXX>fueyITe6O`x?0cIq%bJCMwr`28m!OyW?zZFR`o3n{ z=V34N?X~s!=r{U~+i~T-G0*Axi+oqwtniiDyxF%>DD#^5O5gpqz6|{q-}mjfD&Jw7 zcli2kR{OF~>%3LO-Q~N=)@#tizITc4x7PTU+pP1gv$@XqO*?KqarM3fw!Q&6jFw5G8f4lEfw!Q%@*Hbn-BS(wb|-R`J2vf zBmQBZvh{ZK4&ODR`>nmcc{V$JAGCSE_bEH>AaPy3`)&OY`e9$29T)LMZ2M8{Py7C6 z>)q%*zQBO4|BP?C&0gPog;~}K{3m_pKKK-RpHJTh`>p4E=KgoUr|*BWtTXs6zqt=~ z`OWpyL?%%Aa!2`@i*IgEqa~* zfUU1ZU+3?)^XmP%@*n5?)<*v{n+^VQVV1R-xGnw~Ti=S_=x?y&w)=P6Z1Vrq_BZ2y z(BE(CJJDPGewVKQkbkl;%i3+*W!}SfxCb7DhhR5622a6$cp4^OVy^e;&9XTn*q1kQ&G;6k_zE{CgN zjm+#oT6x;J_1Nz2{5?kMdzQtyiwH3Y5t|#Yj^zCea zGjTiNZrBF*z1HCEJ%)@5%7WfeMHsagiL3jurgU8`%cn12i%s6DiNjB50E6^vyX>dCJ z8L&9Z^luLSd2lgYLR=;K3iLbBSE5%_rxyEKxEXGRJ76>11$V&icod$3{m_-eJb;-n$7Y%pM4yNr$}#g~ z684#JAzTSJz^!l_+zH!YJKSee?z3{tee-_w13Bitxhu!qHy_T?_sv<>5&V%HbN~Ew zj`_T*C&zqV^-PYrU+&E@pI4nA{$$Se_I+?)j=67sF2{UMHISq4m;IKNYwnXhx%xgi z%Sz7G<0I?LTz$WsWu>EgbM<|*-^$1}_odmn=DzgOT=Tiqc;W)N=5whD=)qj`xl}0E zd@glGuD&mo`zri-x#sh!eDo=~=03GB*L*H@O|H2=orb?C*L*%T9eqZwxlb+5)%S;T zUxj^kuK9eb1iduZ+%L{SpPOs$7w4gu<(m7&8*|O)P35`f^QJ|)`u;G>T1;F;uD(yq zvX-FVoNMkED|5}~Pq*Zn`^4q=t8(>yqO3d7@5t5ni+-y*SKlYfdNbGDABJ=F{b821 znz%K&=033&y)IYZC;F{*x#s?`K3Cr#$~rUG+!t;lt|3?77s`4QeM_#s@9x#oVOjkt$%&HY9@dPlDL{A|Ci zXITf~5qK0HgU6xo73O#>fOFtdxC++7X1EWYfSH$?I{9!OTn2042DlCGfIHzXxDOtM zr{NixKHjwFgA?FHI0?>!%U})M05`#1a5vl!55jJE4EDp*@C?j+rRi4=oDB2fbT|_( zgPUL*JP41$<1pt{rv6O01g?g)a5LNrx51ro7i@#=@E|+{(*vfxiEtX64i~^>a6Q}# zx51ro7i@#=@DMx&lPAzFoCK%BX|M#&f%D)(xEQX0D`72M3pc<`a1T5V&%n%AvwvX$ zTnKC62Dk$@!`-kA?t}Z`5qK0HhbLgVGVM=-GvPwG60V0E;5N7e?t;7F9=H!4f=A#{ zcmke+XP_%+`jrlSFcap$iEt7ufK%a2I184*`EUVT2$#ZTa5-EBYv5|Q9&Uh};11Xf zcf&T=4)?=@@DMx(kHgdO4D?Mjov?9=z}?MJe&>}!&Pt-+yQsPHrNf% zz|6}`dlTR^I3F&7E8t343pc^duoIWE{03s zO1Ktog}dN>co25OW3V5dhQ8ODeq_Rla1xvfr@<092QGjM;bOQ1u7E3HEnEvX!>w>9 z+y(c*eeei83QxdO&~=5`o@6*4PJsEa0M3N7;C#3ME``hBDp&*8!wqmV+zR)=3Jq^ zJe&Xv;4D}I=fH(8XTdpe9$Wwy!eww3tbyC$K6nDAU&(xflVLtAflFWw+zfZZHh2W~ z!^|nBem*RLOJFT*h6iCk%q$=umcS*j25yGC;URb$`rcsbOoWqQJ}iJ!;WRi0&W8)& zLbw<%fvaE*Tn#tD&2TH+26w<_xD)PzyWv522p)k)VK+Pm&p_8zX8V0G6HbNG;Y>IS zmcTi19$W=$;A&V4*TVI11Kb2R!>#ZL%qcYe91j=68n_zP!nLp&?u5JGZrBFf;U0Jb z_QT|Suno4u zZg>Kog8lF`JOf>CG~Supgd=XQ1m^_6tmhK9~th;2gLBE`*EW z61W=H!nJTS+zOlFPS^(9;U2gT_QTUK`8wu3^uft69~Qu=umsM5^Wc2A6fT3y;R?73 zZiZXoHn;;e!<}#!?1tluO#dgqS+E2ygp1)4xD+mf%i(HR3)jMJa0hILJK-+48@9oA zxCico`{60r4_(ulPcR+&U?!XhC&L0b70!Y4;C#3QE`v32HLQhe;a0c}?tr^t8*GPr z;6At?9)~C3Dd>BX+1^Z;1Lweba3Nd_m%-(56|9A8;d;0MZi1WPR=5rBfX#3x+y!^T zHrNjLz? z{qP_>1dqU@up1tO$KeTh3iiX(uwbScm#J_XoDOHgS+E4of%D*exBxDMi{TQu6fT21 zU^CnacfsB82s{eA;W2m|o`9!dKRgZ3z)5d0+no;!;8Zvb&Vlpbe7FQIhb!PpxC++5 z)vy+>g*#z8+ynQ){qP_>1pDC`=z6Q!o=lhn$HNJ5BAf&#!#QvsoDUbkg>W%k0&C$~ zxDD=r&9Du&!#!{xJPuF5Q_xk+aSPL-4`#v~I37-b)8R}w3zon+a2}iw7r=$E2Cjy+ za4lR9H^5DBGi-x<;6At?9)ySB33v+j!_&|=i~S9A;3PO1=ELc5CY%LJ;2by)E{7}N zO1KKvz}2u8u7&I22Dk}shFjq_xC1uBop2Z24Nt=}F#T<29LB>5a3Y)pC&PSL0H?xf za5|g`m%|lsC0qq-;A&V4*TS7}7u*foU_0CcyWuf-3iiX(@C)xDYOeOW;zt46cT2;d;0e?t<-b4?GAD!K1Jno`9!d&TO-N1#k{r3|GNvB_?h< zoCD{W%k2A9K?a22e9tKkN?32uWs;BMFk_rrtmDC~x(U_W%-zVTVvPqeZJ$?Ov^8F_TKB{cXswU=Lnu3YbPz29}~`k?D0u4i1& zdS2SjzU#TJ=eu6w+Ht+y^$OR%>(#E;xSn*q)^+51o$JK)CfA!?XRf!oo_1Zh-s5_& z>)Q1J*N0snaXsrYKR(xUT+ekq=Gt<-(DfqMj_akam%Co!dZlaM^=j9F>j~FuT}Q6h zyWZe>lk3f{x46z+7p`}?-s5_&>)Q1J*RAVAt`ECD;(EsQ?B}QTImh*wYs;(C+o&91k*o_1Zko^d_r1!+HyyI$mav1`xuGS@3zuW}u@o^U)Ed7x}NXaay{;Pf$N2? zm%8>`uW-H6b>Mo!^%~dfTqmwKx!&x0o9peacet)x?{>Z4b?y3y>lxQ`E>FjKuIu@( z$6ed57rI{LdZ}yA^-9;PTnDZvTu-@P>pF40-t`98sp~DSx4YiqdfIj2dY9|U^$$GSUE8h~xnAsgscX;mO4qAg2d*bvPq|*}I&!_i z^+wmJ>n*M`*E?MAbUp35a=qL29@n+&1FjFbKJ41~?sWWTxt{HMj_diZ$6SxQwp}lF zy~Oo0*UMe|u2;LBbUo!dalPL4X4k3fZLYVw-r;(u>&o?R*ZW=9t`E6B?0VMs`2E}U zeAi>H7r0*N+Ht+q^$OQ3T?eiwT(5N)Q1J z*N0pmc5PhYe^=LYT+ekq=Gt;S?%H;}$n|2^OI>@eSGZp3dbR7o^`z@5*NN-(t~a|* zU2k)}-SxEV!u4*~dtC2#UAsQ$`jG1x*T(ny{oC~%*YjPExgK|IyLMbJb-lv%O4qAh z2d*bwPq~g(uo&*V|neu6McK>w2H-1Fl=wM_kXi?th;jx9hpC=exFC zkGu9sc>O+iAOA<~ne_-gV}B+VvjSwd(_}54t|&de)U`{_|Zg za=qB~QrDjAm9AI0_Fb=cow=TNy~p)l*N0pmc0KDQY5V)G=er(rZMk0Lda-NI^)lB} zt~a~h?s}K&%JpH_^Iw{_d$H>!u9v%B;d-U()vg2AYg|vdUgtV-J?(n0>w~Tjxt{&~ zY5OhLOI@#W?Yo|Ey~g!g*OBY>t~a>e=z5Fm%=He}J6#v9ce$=y?{>Y<^?ui_>w~Tj zxt?)tT$PUJEZ1{f&viZDwe5O=>&32@xb|ExbG^#7?|Q=Z8rN%GN3Peo-spOh>n*M` z*V|n0bUp35aJ}309@l$aA8_5eKJ5C4>sc@J+q3IAuIIWQb8We{T`zFG-1UU(#PufE znd@z?_qaaj+IV@|{@Jc=*Na_yu9vx9<$A*P8rPBQ4X!u3-syU;>qD;R=4rbZx^`SI zcfG>(lwZ6N_qc1v^$OR4>$R>oy58hEbG^;=wClq4 z9@l$aA8_5eKH_@Db^ix^{aw#-J=gWPYuoi=*GpV4bG_WP?|QZCN!L@Z6W8lqZ+4x! z-tKyb>s_uZ*ZW-WcYVNh>w5N~|6N_La6RREv+Kh39@l$aA8_5eKInSRE7H6dxnAjd zt?ShFF4wK=*;o7ixL)Bpa6RREt?Lc0GuPW(PrEK$?{>Y%^?uj2>jSP2xjyXLcxBq3 zvs}+{J=gV^Ys>YxYuoiA*Na^*b?v!c;d-U()vg2Aldh*+C$87K-t0Pcz0LJ@*VC>G z*SlTsalPMl?fRhWL#}6B8$X!V;cVA)T+eqs=6c++P<0yKY_2 z`k}Pl^Iea-c3iJ=J>`0%>+P=hx<2B1?!a$fu9vwET(5JTx}J8u$Mpf%hh5LOHh$P| zC$9Uh$6SxQwp}l9z0ma{*UMZlcfG=O;CjOK8rPGqr(Caf9l2iTI&r<;b>@1T>z%Hr zUDvJ;x<2Ikuv7k%>jkctyI$!!a6RFAjq6F*Q?A##j$E&Eow#1_ zdV}lTuJ^d!>-vD}*7af6M_kXiHeT(2PuG3dmg{lXwrkJz3fC)LuX63XUhO(?J>fcX zz0P&wdcErnuD841<+^gc+w~sTdtD!PeZ=*QYvY6;pX)K#w(AA17rS2K+Ht+qwdZ=9 z>+P!;ddl@$*OBXWt`pbm zU2kx`(e+N()2<8GyIfbUce_5|`k?E>u8+7L`_XiqE!X3&7r9>Idb#UK*Hf<7xlUYf zbiK*-7T4Qd?{K}-^|b54^)A)o#RxZdk}pX>duYu5){x2_MmKIGcICLQkut{1vq z>3Wsx!1aXdHLfRJPq|*}I&!_vb>e!x>kY0qy58ivaJ|cQ<+^o!(DfnLhg~0WJ>z=r zYtwO^?|RI&<$B!p64#FFrLI@G_Fb=b9k`xwz0P&wdXwwTu2a`rTxYJgx!&%2hwJ^W zYu5){x2_MmKIHna>m#mbTpO=T$A6aVzUxJ<7rS2K+Ht+gweNbh>%jGd>ou+?T~E1Q z>pFFvx!&e_yX(UBF4vXoeXd*A2VEa>ec1Kv*Qet<=Gt<-(Df46j_akaJ=e=zFL%Ah z^`z@5*K1uzuGhIvTxYJgx!&%&aJ|cQ<$Aa4gRT#`KJ2=GG9B01uIIR(>w3QHG1r#s zao4u%1+EvmUgUbQ>m{xo*GpY{u9vx9?s|jkjjmJI+guy>%#Re*OlwtuJ^b; z;(Erl@dm&Bx}NWP%(dlu+_mj`fosq8GS@3zuX63XUhO(?9l1_iuQzRl5MCGJ6=J?# z^l0dD;b(uaVcu7Uo16~9?>IdAB(APTw8wcX}yw7`E=c z$|z%BI#3Svp+iyH(?T>1=MNfTL|U5nEApmzm3im=a3d`6mZCIEZRyV{U6bmPb(;B$ zUeyS?Xqd0io+yoITKZO{Ez*p%gO^+Hi(lOckcX@NJwD@DWbc8!RXModX7yaiq@ z8ivnlM5HugO&T7x^BSV`m)^r`iiY9UCmJDA8r!0m;dStG(JZR&f++rJ&_*=UJJ^g4%8L-ap3i# z0vbVMksk-%6sn*Fv=sSq;Ds;T?fss}_ZhDRWl#s|ihQ5(`cMIlps~pJ8E*WW6~0D3RTbos-ZQs5&d3R&h>z^&)!3OqO?LyycTpI zN@Fv;4%8K;u|3f|JpcWV3OQ*X8d&-kr6attC>{C4(swF7!kd|QTHZpm47307sIW5c zetB#2eox-kyhr3Uz9jbUk+(0JhcCV3QK4=06j8_0&nWGg_gr~>QF_)GnD+{KBfPOF z9r?u4waCzc*6EiGLros!NhjeAvD z`rK>udV_RjY22&Y(!W%?Cf!;Z_bNOl9?^?mt5+T(f5sN2+rhqQ9^(Ert@oGewdl1i zjr*60(%N@OdzKEB=AvP^`gIMX)a%oGh3Lrc-2)r(OBzv#Qg1|WV(D)yEk(od*P1U< z>P_kWnkdaT6V1a$BPx0edP~u*w%wKW9{T~Um1r2Qczwet&AevBr$uSzt&R9PjR$fkOhf9?)oSXDH?`9(0q~7d{a@HZ)UxJQ?DXjkghEKn%~j- ziH4#32CW~xHN8)ZeEmf8@Dh#CrSp7id!lr_`=WXH38hWZFnmz+MM`_s5-r2yep8Pn z*88A(8EMDTCn3cL^ zc&r`An{=-grF3634;W$D?!r{fR}!z~&SDfKqc)_U==E}XMV_e6edqIrmqYfaHG zocC7Up6MMxZR^FA%g8+u#o{keL&G^WqIC-UPJ&BJGvHbukmVa*aL?ZE-m zwqAUk%`xiqf98tru4#Bke*xOaDl- zP`QQDW4rB75^i-zIj8XGBX zZ3Ats_X738m+jJh(L9`#*Axvy@9jEX(zc~jr5Rq&ypPJuMYVZMc;sumjVNt*YiZp3#(BHF+7qSi?u+Iju0f0R zKy<6!L)(_d)##A+%)3QiA8%k@755%*VqScPnBvXM`&;!Ecq{Y1;t#a>kd(r0Vt4r$N4ct7gn9g5P{29{o}5hK!xdGX#o#haNI z@1YC4r6|p^vUC)Wh;(b7y-)e_-Er)TeDCqv=DjEGGhSEZw;@ZHO8caTqIA3iOXKm5 zNGImSVv=<)ivYi9IR z(L$8&0W0&KFK>;v5&5mt(pM{Oe8q0Wo+xc&Uo;Q#_R=D4n-^~{9lWl{_tesOd+C!N zihQ3feTTL-BAuA`K6z8TnR)h}4sT`NpT*CC)b-U4qaN+VX5#`)HyTl3;9jVJ8( zeovG}?2G0h&etMsn-@oP@OtLGMP488P?TmFSQ=lOjYucvy-y>icr)|}t z4;_lqECcJsdv_rkhHt!1@BHaaEd8uzDJ^}E(kbc8(y#ikp5rb3@*mebf6|qu@ma05 z^e2_BNw=0hOJl=-iQ9cxX+xAA8TLeJ|Mo@m@N)H<)_d(w=-mXpwx!o9%`9Cj?U42? zy-8_q>C1mopLviDERBz+g{Ai@9g&Vj>2YIXz4$C%TJO0NtpU9w(WCADJF{Lq-pYC( zQ*S|UWodjpS&Pz$HR(o_j(2Ol_*cZ)1e9Uf&Qm-XS zy#rC|wMFv~Uu|ZhVVG;?NNGezlt%PK^AKNw=A?bnfu-?zp%4wjv7c%frCBDH#^;n$ zl)R~E8D61xu1BJ@FEi0R%=MS4M8ohCnk7;iv9k29l-77_(K5V6vurJm?@mH1j{PT% zjg-bVM9XladV8X@wSCb%#P=>udM)eSs$SdD&&Au2NS_b=wAO`Q$9hZkde(dVU0N5? zfq9v{LNp8?)7VI9UnZ9Rpwbd=DoX1-6MZs_l~$r*_|EIK2J{y6R@R%SSCg(ux0e2b z((u)BmfzMak$g2oX>0qUPlh;4le9&8AWCc17NvLonP?cE^o~Y|l;-P*{8nPU_*x(* z?UN2HeYdt&h=$?ank7=2Wkhdcy$`B4#haNIXI|hfMQQBH(s(ahlWxt6TWcKb_HSP_ z54F4&-hn91(zf(bAJHQ}Y0tcGkk`i>m=|B0jqoPs#XXqf&CGj|#xC$y=DkYZMwGU@ zHSZ_oHJ%u6r}4AvebGEj<+aTFM7&L!7q`(d?_c8W&%F3Ppl{xPe&3_Qz`PG>>`0XU zG86MYDQ}85Gw(e)-YeDX((74zh0?yI!??QUy-waplvZ~v@_n}SXOvD!XXgEeyanD; zlt!#9jkkz3>DIjXKDqHVyKU@=eD6i`5dR)6(zbbVL^a^iY(Z%LbO- z9gm1~Eb=3=^fU2@NRLFfrsp?HAG6Z2k*>^(x92t9*1Y)Yzwx!ZBia|u!;>|(h1WLk zP+kYGD@t4IS$d<=KIy=`56BzgP0ZWKo8ldb((%qLecT^wpGlXZbi6A|pR06Dx)G(Z zTT9=lw9(!j$DSyS-51Tnk)`dw`>eb^-oU*09%6(yF)zN(nc~gNYkpLF zkGB-16v`;!P?@@oE>0(uV-G|mpB0mmG< z>D1C^Dm@aVnP-;9NA!iI_U*cP@tyEmlpZ%WqBP&u(s;XXeB&OTkWsVv-AZ@`=p1Y154w3x)JHbyjN?)6mMqUf0ehuTbVbPx5nFu{5UL) zkIIb;IS!E@hbX-dZIK>`(%818@qK7llt%Q-`*=JK(K39m)_GvwgYrh^y-ME1yz@S$ z`?S#|qJ^cupmZrp+gMrpGNo%v->Y;ZN?Y4nYWIq7+U@OaD~q*1WI&Q?2e(**}p! zlabfLI}oK=+LnH|(hg~tv}bAjtglZxFz;;|F~S>*(tHz3Z&f-aotYQE8C~G5%)3v$ zHQq*)X4zV5pE`dt$03@BFa9$f2VUE}Zx$AWJxgD%v`;!PZ!B+2Z(`n5-c+;< z8?EHby!iTWVcvhpTbcJk^=eVNhpsI>@3*w}madhCi*{*4vov9#4a223=p8e?1-+H^-mP9ux+dLP`cb9fTjDGq)hvB^N*ZOm| zQ#1^Zzp-KDM^5hmYTJlE*1lvSKXTG8)U#f^=jEbdxK1-iN+bI84xxc)9^#|-2yYBc zERFY%5^o9}K{M;c`$vVhfR@n8dhwo8i-zH|+P^jF2HILL-c!QGvG>|v)a^x-)^88m z7tKSwr!=kifO;*`1E_7ic>l<(cf~L1k%qJj^{f}~DY^CjNWDJkAvCaFyu}vQd-gBu zF^6;vO|19#@fK#i-&Jo)dIZg^_az_K`dRO(H#NeNbY-dCw=BI)>4tP`>DOp%__nxK z-|*jb_KC=EYodAhE~QON-=nledH}Vp_bT-=>$Tpg6(a3IJ?s6Vdb#!9rCy)(5E@u7 z-ct(eebujMg-FNH#Cq}7Txq>uQ*TOo1kJ1$Uqx1;bbDTqE}@n6KCJz#MZ@qFH|snA zQ5vzPw}G~zd3aDG!nf~wdm>*y(LBUYj+>%k_!-R?Db3dsEyJnbdQ>Je+&4 zR+3)FdOxLJmtN0$->6;1HP73qR>39YR6yXw`VVfYKp7s*$W-Uix==HcTS5uU#5HAHFe_n>{z zJj63Ynj$^Fy-RB<@-?M*0JTNw6-7p`L)wLU){E~$bI~x|shK1Bn$kOj2BP$ev7k35 zoml#>aZN=!XQ$Mf(wmCXd!ZvyI?9=79-4ot)up$vUVK-yq_?tOe1@$>!%%AGNWQwF zWti))zY(RGx1xEtLNkX;cD;tkR~OnB&BNQ&Yl?>9E2mmrk*_Yj1E?*UhxckkMz2HK zg?iTe8})M0FuX%ENAlIBcL)tcx<%ZfTP(d1=@^<=FTN@*MZ?f|x7JydW}ebJf@Y$5 zu(N^aEl8Kp%6j&UEgFVXnzfMk*_no z1E?+X@5|_QNV`zadiH&pXc(?J(mIQLo#`Dy1JOLh@6g706Z7nwGrXy28U9GOt0TOb z_2LRucnj;@uig@GWxe=XpcW0oT6?v&-ap6NDZQ=r;%kBM9kKWPU(<89$kz|r7tKR_ zEzlJCs*xT*ZR^F?0+~o>j%vP0X+(!!7wU=9tAd=~A?d)<_*$S4>HDZ#^lF&iNR-|c zjYVmnC!%?XuL`D?#`i}@q%%w7J-NbLSTDX)TH>v&7atvKytVb>d!`NE)_UUNnt4HQ39Ur>HbeVT z(_52npsn@dZ9H`1%-{T;hEbZiARIm%nkC2U zLx<47dcUP!AsU9$+P@L$7@Ambt6pin-b}BSNRObI^}hbEwUXBR6ZICPOK4@i6YAC0 zd%=5kpC;WvTkFMhI>IyK{(VfnhR9b9+86on1FZM*TXmZxJ%HNQv-PvyR=o~s7wTE> zJ=(uqVje3P>7+&`qx=o7wHc4*`O+@qX`1`by^roao(9C+zRId{0_o13O zlHVrjEuocY9$u>vHN7?I2HINh*VGH$IP>doYZ&=$Ql76av@e>6rA9PGsn;SsfZEpE zsF#U`;eTu9NNGfeUKi?#(%&to*C#!M2G)ybh7_V<82k^dvnb6xqBn*nqV$|s(wmYV zK{M;c=e$ZZ4F5+nM@lm<=q;g@NM|YQHd)hKlWw4`_3ZqYXT_P{_?ud1QJQ&Al-7A) zG!N%}La*iV+UCXQ&G$};G@bB7}5$PD3STCMmQd;li z`*c4iJ%VP|i)Wft)_X|31?du6SudVxQd{r!x9fgRx`DRVi)WvNOXL21UcH9MZ;8;p zXddEuC{0mX$rkAW)V5xH+|5M8@MFKFTcRk9=+NszJ&`^Yk1I*9PkIOqtQYUUg-B-!4@m{q9}+w;)|YE9=E?oNDX6{0`kt zNjK2edhvZ;_^vqLr_^hReEpz(QF?dR6s6T@ksd&8>&5qZnMh}B{kGOmXL@%nN!; zXk{bfy>X4Vfwq>$S3Kd_yOnG}d(gf}?~j(cP2#nn1E_7i_}V8E=~HLzUx%~{^{f|P z`{dR;@jLoNiS!T}STDZzDXjO1dLz;?G_hWM?NeIsZFlOilk^ChSuei!sjT;y-_>oB zbP27j7gw#e-Yx2_NjK2edU0JsFCOpHeowbak>4hveUYBGwB4r2Z5j3-2 zeC1Jz^f%Yck^DAEZwakL>0NY9Z%w*^w$_X1nuh1ZnO}NZkDa14b3^3o4DE~NAwKUn z>9t4?ptkkm^L{28hQHCwk$j!$b)lXp{XQzE*C#!M2G)zu&V@+t<3Ff%7Wq2U8$%P3 z{(^d5E$K~3kD!_L;`4MR8iq5PIg+n4y(P2~rDyC7-qt*OSM*%g584-{XW}Ma3p#+> z){D=?nP?b({10?LC+$K#>&54a+pg3s z`#I?mG_&3(_4lo;_X+hDq)TXJy+_omMQJ71q#I~!y(fH9x5Veg<9*YIbW0Sa5e<>w z5}|$3JbZ^nH0iZS51_X7Ua4Lt8iu{4Zi%8abBA6R>WSvzr!*p`*C#!M2G+Y(y+Sk$ zzo?lbrI|`>a9sP z(AIkKe1Y)%xPMpvp`MRKzG~3E$X_E_?^EivNDrX4_2StCne|@%N4lSrcA=j2;-gA# zy+_pRlO93?>&4G*3hSL(Y5hpY(8PM5*Db8H-Wm0#q({(pxJ%HNQi{H;=*85fUI;35w zXTA9SOm4k{yS09#htR-!@%x#=dUN$gq+@7ez4*CfX}#=YT0hbwXlA`9{7>EftoLE{ z7NkpPWxe?AO>MpB{i)WEbOUXz7eCDlFO2K=dG#71Uq5JHG!GYRyG`p||7Ti1(gUb% zz4$nuS?|1iw0@*rsAs+SIG$VYUF!8o521ne;^TN>y{G)S){k@yO{^Cmy-VwTP`xSX z5j3-2eDtoY*ZT{tAL$ZWSuZ|j*Vg+B_12^tXluQfX zM!nK{Py8#bAL$V^v)*Iw*ZNs+rrv^d39YR6Wc6z6ebZlS{YW>^)_U>myYQm8e!s6? zL*(lR?ThqkPLIz`QF?Z1ksd&8>&0`+GSM(xexIJ5MQKEbUKi?#((_SHuTOdi4XhWR znF`S`+^d-*rI|5j3-2e2%I_!|=jS=-FA6W?s-+LMzcc#AmCT z-kNj+ZLJrdt-^Q5nLnzTBc+)eB41}{UzE-%YSL?w9zbpD#pnG@q-(BxQtK@8b*9&a zdZKxV&vZGxKItJeuwH!SQHX}&Lz+2~uQR;h@%#nPZMZV6^zGxmwjcC$qksd&8>z!6F z6KS9C*E)-Qo#}Oq2iqx`b-dHQoja-xp{3Q_T{|*G1&(0yRlncn44>()kA)tqZ*lX&1^#`*?>?AsU7+ z__WrA-iUMzm84U=Bd8MTow{a;l#XaYx`b-dHQojaFOIW(@dH{Hk*|x$*9B^lw(t(1 zOrG)ts3ONX=z<)nSQL#PnxY_Gr7y3iYuj-irtigyH6qG9+|%@WDig>(tkq-(ql z6t0Z3wEj-(BJy<+`MN+&(iYwUl!=C6s#zlWx{!9EoV1U32o<7XIQ|)}3%wEP7%EAp zct=nr(mQa?63N$vbP3g@YrG8%zE+4o0UlKSpHG3;7OOz z%6jn{oVE38_12^tXluQAUC!|RalXNWdIc}?b%FLpy26@zP3!%OdM(lesBOLYE2hkP zZ}=y@10wB0J?q75dgj*qclG+DhtR-!@rs{?^?vN1^$v)13{9*T--(pgd-VU-J0Q{{ zXlA{5CC|!w?@(_+x`bBNi&uTAt#{r-T0hbaw6&hS1G*}%-><0G5c&E+`=WV>+ihB} z`7c^O(gUb%y|~@Xdhb!ML)wLU){EEg%&qrr|El#PJ%k398nLFgfwndx ze)b<;zMHur@|A@4Me`7^($^H}kySHCN;9|U9YAf-JjCnuW%N3vU8rZhc&)lzq<#MP zhEbZiPwx;K*ogRfNg+zT5$PD3STA0Or4;F%ux5^wMoj4)K{HYMW~!pMAYDQ$>&3He zYLVWd{a>xKD9ya4w}G~zbfuM$?|Kc9uQRkSO6Q9*b}7{+86mR1VzJe zw`OV5JD}ILUi_P9q+QaUrSb2Ui-zGvAyGP_LwW=2#b1*bqLhwFCzi&)Q7Ibgnl_1i zUFglM7ym|;D5Xo%m8G^WqG5PNLn}mYLvL%n_*V#ryIJ-`zAhqt4x+VhiiY7cnk7=& z+5x?`_2P9AGtw?;&(e5>#9XBROYx{gX_iBJ1M9`BCKjTUj!7q$#_QpgBAwr^St6z0 z5xtr9;-{At>5_D1seM}|(%E-=S{Hg7dRyzo$LH{h-8S|_zAhqN_fp$viu6pZSt9wm z&}&=I&etRDlJ+c(S0&6v!%%!dB3~DJ1MAsYjv`+d(ut+DZq4CkDc$k&D5%zE+F z<`QpZUOdVgZv$;Djb}85t9M7f2knb=_GerJk3l`(C6 zk$xp9^1rz#eFNRJbg1-zv~6j;4rFHO8Kqs)o~7{|g51(Ke6fBE9|{lCCU`uefVVulW)kFX`6OcvZ*ngYkI(S?Qk0 zk5@Dg@%oNUOHVvn$4lC_)LwgA`he0dY0uJlrN`XT{4qLS(t)M%xAldkpHVs{omhIQ z($dmboUP*}omm>kR+fHB>5_D1X}oS@ZRv~ula7~kYiXQ0{7^jJk1O31`SFV8Ai z^!p#H<0Wld8fVTd{e;pkY0uI)Hn;R8U#jCJ9atK#5?NTfQ934_SQ@VqSz7u7=jeDz zXO_k@-78DiN|&T7OXE3SwWZhmXB{u;*3x+O!Z3)(`>@hIksq(f&yBbAjgQmulC~|4 zzbMTt{jAb1Y0uJlEuY-dlV7IeB^_8AuN6^P`dOu8(ut+<`WB_7Z$DSZOFFYOKIT-G ze(`xaUecAN@k)iYrEgcdA>CSP&+$LJd(7Dr`SFV8A-*ndigY&1;}fOFoCA7o>&5f5 zGLb)Wk@hT&k3P9*7_QYUk^GU1-oSeCy-PtlCY@MnkJ%!fEv#8edPnqT){Bpm73q?6 zWof*|U@g+~>X#=<`?8_8wO;(qXn56bPxnN=E~0se=YTgwI(JpGMDlf^*S20f2RtL~ zlJ+c(=a%Inz4kdjk*^EAf%W1UWrZlEW73JG@jS9pq)*i}OQh60qBpZ%Jm0$_U6QUu z>AHipXc#W}3atyh4ZW@P;uQnKt9RSj6ZyJ`J{jV52b&_jKGiIdd|l|Ztrus>NV}vx zk^hoGGz=GirPhVsA-#e1;xki0IwqZ18n6FXiiY8K%@WDih2G41@oIw=>5_D1sXhCN zhT-4|S{Hg7dRyz+{piGQ8+#&O7tuV#eQAnx9*Sm(X%F_5wq!tasr!`BY)Z5V8S}(p6 z39s3udm>*K(LBU=i%romysVih&2m7mZN2!)JQJm~OWL#4)9(g57>5_D1X*}Lqq;CZ^OQh7>(A!!s-UGsq?$SMx zuZw6N;`OweqG9;{uTGR^IiT0JUc9naCQ50Sv}b9&##S!U8P1v|QtBPj8(1%X;#H82 zNhg-Z*QcdOXJ8*BO0yi%n^`ZuQmsTOU6QUWjmKMybZ&rViIjR9dRuzonq9gl@^umE z*O@xrrbt(fePW_C%K^Q%_2RXpGEqvqq&-XHwWM;99=$b7q|`g4H?Us3PZy+P(ut+< z`ckE67{2RxqBP49y_xmmRZA*SN|&T7OXJn2YLWgsgJy}8dK-FM>&3GP!fSWwp2*il zq$@utZHk8B+n$st&2m7mZN2zfw2Rj>FJ7Lug>Bee#4i zh9;KAGkQwABWPx6JbS0YTS6;K?QCJZ4Yaj1o|C%w`rYyFi_$qe2Y7As;?=A&ye`zU zG+xar$2)`umd5iK$9NO-;+3n8@Mh-4>s3{FOK4?jyh>G#w}G~n#;a6?le^>CgZ4%9 z5Px~!#5;i6md4-PXLwzxXKDPEeU5hs4J?hntuOG#(8SVsb)6FL2%1?Me@9>8EuodA z@i+4|-Wu9KTkFMJPU8(6IkYeG>!9HsKy6Fym+g2Rs0;P17q7RJ z8bcH7#Vb;kcvI*InprPik*dO5Kuc(4y?B+X8gC74psn@d^{N_gWUZim(LBWKRkiRA zpthy)aW}*3KwYS3y||`1ULQJy2G)yfTHuYKF*LDWymD2EH-(O%nf2_q|9A^%39YOb zuZ~dTt)UIHwO+hBLU_||ts2lCv@c56SZ(69paZCFy?7m^46g%qp`P{Pb(C_vK6D5T ztQW7NG{PH06HDV?Yl?RS%`AXQO>Owv1#q;2EygqaY4XkJ9x8seVF*LEBo!^c(g^r+^_2PN!72X0` zLM!XVTVjp3hBnaFdiL$`n^`|-584;`H7W59pthy)m!}=PF4VKM`IlNNygqaY4XkI+ zzjz~P3{9+er`{WscvI*InprPi5vamjKuc(4y?B1?8gBz_EseM0#&EYnd(gfpeN))P zYe5H4+j{X6pbW1Ab)la1?5a6Ln2kndeYLfI?qz6#jdhuC2qt_wrLOtun z=kq?^AvCZwKA(^9#?Zvlc>62yrqB^IvtGQfR(K0&39YObALTcATl3;0dgI!7er!Ag zc2DH5)I)qb)YWPvtIlhJ;&=qhtR-!@puco5j2J-){CFKPw|eRnWga;%?rFGw6Zk*D!Im6 zLmOyoy|^#ot*jNa2knde%3pXb=m2V4FFqn=cpaz<^{f{^gU|8$&>=LiUi_rIz#Bnh zXkxwii{=t<3LQZ+>)EH>cnfF=t*jTXZc^i|p$)XPp8X%4g7t&;pnZ}5_Z++ybO5!j zXa7eBuM71ojh}4iczscNWH`hdSTBCYUEqzZ7yqaC7;j=d``Ojvz}ca z1aAqgERC-UYP_{*8RGu~-{5VnXV(H5u~yI?v@c3m0BPYJKy6Fobw4_IU8rZNUE>4q z5E@u&*Z9C2L1SoQJ-fyS-V{25X4bQ7eBdphCA6|${7kFHTSFUYYrXiJ){CF)E>C^{f|v!<*yvp+jh3z4#m60&fJ3p^5e4Z+J_*DRczQtQUX7Tj4FB zCA6|${B3THw}v**)_U=F)%fw<3hhDrqIrnFjBVi^Ky6Fo?_oQ5U8rYi{1t4D*M|sP?LrxpLw!;DzmWyr z2r8i|R6z@D?YQpeEFUGN=RPP#+pWQ)mIz&>9NYvja;|LZNs z>q7-Jf=Xx#RnP*eq40C;izxjMwOeWvhYDx}mCzKbpaoPzYp8J} z`vPT92g;#7R6rxBgr?8}T0`L%ciU}1O{fKBPzTDPK2$&@G!>=))37j#|A}F36#v6Q z^Otse&=M`f&*~L&hSxFgz4CIrK2$&>sD!3a1udX8)cWPP-S}VCGEsU})iE#r*MJt)cKv_5f-^EhvLJP!9E>0vbUjG=(Z?0oBkN3ctesK~1OyWl#sop*}Q%rqBYa zp*0k4W)Gky)Pgdo1NEU1G=(Z?0oBkN3ct!8KuxFxWl#sop*~bVBdCO?Pz5cZ8d^i) zUF;v!gj!Grb)X#TLj^Q~N@xl#pf%Jecl*+WT2Kacpd9K$1vG+6XbM%(0;-`k6sEhq zYCtWh1LaU3DxeWmLQ|-M7EleXq3~|@1!_SZs1Fs;2r8i|R6z@cO#Pz|l2a0~kaHK7)iK^-WE`cMIl zpi<=D+~QSu3%nX{jTe4>H?|>4&&f@^7G8$e!RtdKsD!3a1udW&T0`N#@AjYpwV)2v zhYDx}mCzKbpaoPzYpC&_-5#`{4wOTEsDMUL2~D92T0o82?)6a1D1O(QiTsrjltX=} zfJRUWO`!#}h8pkPZKDabpbY9jIn;*=Xar561yn<8DBQZ+g9g-uT2Kacpd9K$1vG+6 zXbM%(0;-`k6n=yKgPKqa%AgL^heps8s-Oi_Lu;sU+ink9PzH6N9O^@bC_NsG@JhTX zUWK>7TSJZivDYADQiBbrbKjs-bWP^FbMu zLj_bq6;wmvx0w&hpbpfBM$ib%Ag!7 zpc1N}8VYwZACy5kR6yZ(83AQb4%MP`+YP_Bqb5{{(ygnQ8I(f>R6-RL7P}*FLK#$w z(mGdA4TTTw(k7HaIaEL;R6#YQ4^Vt-O(=tMsDMhSf@&yynE9X#%Ao=(p$cl=wVNe_ za;Si6D12l$q6uYC4i!)dRZuPRd%z#=s0kG!zXw1SR72s9cD*K4KqXW`HI%J(V{@p0 zN+|sCuGfSzD2EEDges_p!bdq?D1&mSfJ!L*3Ht(NP!3g44TZZI3uRCa6(WDMfGVi@ zvE3{gltTqnLKRd);ZJw76i^9OPz{AY+l^>K8I(g6R72q&#zGmCLj_bql_;%74TV47 zdAZ16M?fW1K{XWqVmG1*Wl#mxQ200_pc1N}8VdI^0?MEqDxeaopzJSqv*b_#l~4uM zQ2tlDu?18@6_ow;u9rgvR6-S0L*c&N*d|m$6;zA-k>(RSYC?s`A8DWpsv-UKd-v!K z6;KIPPz{Cu$yg|Za;ShxsDf%J+|PVa2IWu`0nJE3Wa;Si6df|UD7RsO;Dxk1o1XMsJlz)2HE1*)8_NszvD0^TxB8Lj7 zges_pvcF|4R6r$EK{XWqZa20GWl#R6-S0L*ak#W@$nhltTqnLKRd);UVUOGAM@%sDvu0hQhxvACy5k zR6yZh83AQb4i!)dh5y4?D1&mSfJ&(O@NR4dl~4uMQ24jqh$fUlIaEL;R6#WqKFfSi z2IWuzl~4s`pWDrnLj_bq6;wmnBaDR#sDvu0hQhz^#x|i0%Apzx|CbR^2IWuzl~4uM zQ26|Az8or`8VYB2y(W}FIaEL;R6#Wq{vY!}8I(f>R72rEc4Kp>fJ&%>YAA%p?iC7@ zK_yf{H53|*g)*puYA8I45l{x@Pz{AWMnD;qLj_bq6;wmv3z!eepd2co5~`pY3TH7N zltDREKqXW`%`e=|l0i9CKqXW`H59&RH%k-Bpd2co5~`pY3SZ28PzL2t0hLe%)lk^q z%~wDrR6#WqzGOF|31v_Y6;KIPPz{AgGapn!6;wmvF^qsRD2EEDges_p!r9CRWl#R72rQ84G1l4i!)hg>!aebEtqysDf%J{O8@+ zCX_)rR6r$EK{XT}$9zx*RZtCOU$z^OLj_bq6;wmv+}+qFltDREKqXW`HI$#Xo3DUs zC_H|bHlYkEp$e*@@a2q!GAM@%sDvu0hQj&G2W3zW6;SvJMnD;qLj_bq6;wmvE13_< zpd2co5(-aXER;bxR6r%vJhmH~K^0U(;j4DNCX_)rR6#Wq{tIKF49cMbDxpf`@4=wZ z+R6-S0L)nve^W{(hl~4uMQ2vzN*a9k{3aX)S!EQtj6;KIPPz{Bz z-;HfT8I(f>R6-Th{D$2u8I(f>R6-S0L*W~DvoxU$%Ao=(p$e*@a3S+S8I(f>R6-S0 zL*bj456Yk%DxeaopzNu;S#qd=N+^8uuGfSLsDzpq?RpuMLj_bq6;wmvTXwTFp$y8Q z0xF>js-f^S=7TaQhYF~KDyaFbyIC?QhYF~KDyW9S#k*OWPzL2t0hLe%)lm4h-FyX9 zLKRd);oEm3notJiPyv-t1=UdY^xb?pR6r#ZF4^^(PzL2t0hLe%)lhf_^FbMuLj_bq z6;wmvJD3m3pd2co5~`pY3K{c3B~(E*6grH6GAM@%sDvu0`OMuc8B{_QR70W52q=dN z(J;)Pq~BEzTi%P^x#R44Ci9~Hv0V(+x5DN3)UGV`9-*4cb`IaFBsXG$Zb5hYYv z`rNP6*6?a5TpG8wR2nIbZ91(q#j)=cHH{ws4Z1}b{embrI{zCr zpV5t?(&(HEHJ{PXi)y3uzDe^vKh9T*nj*iAn|JQ9-q(ulNpa4KKWO*K3M&wPdA{(%1~j zEq!68?cx>D!e?^6mb}j+&xj_9P%5hbq)WtRS#(nu*SL}?o( zR9Wwt->sRA{!|pMv6;U|`zK0cGxI(tFH-VysIc@cSLl|AS3;GgkN#dA2VQvXZeN;E zCerhudb!cpf1lHmdbzZDljP4WFqO>pJb#d(AO6|QUc}*y@^xu?5^1X)&OW*tw zZ4Ix4Dog)eX{0o^hQjOPc7OV%+O8<2nJBGu4i(lr@B4KeMmLEnqhnX;IE>yS3Mb=y zPkWixUgYzcSINupa;UKM=`Yvb77a=`QAg}4RLFi4!9*(H9IfpV7~YDx)X=u;w%RJyAFn=X=4cG@sFD zM48c>U#CevRgPbDZx1QPb$;k7_CY*RltxrgZRxqM)z!hT#{KMoMEdD7W+puhVw%3aGSnrZkdo7pg6N z+UvDlyzpbYUQ;v-cPfqK+l6vVpK(&##VerF(hn<*X(Zn+R9kxWo3vfL@RnV#DH?`FE?x%ZmVQ8Kq%^jGN=u*lW7;lW1=W^*RB0sN zZn2}LNdKkdT5T6EgK|r^N+bDpq0-VfzD3)`tDxG_GfE@*c1JsEiiY7Q-m2~5 zgi7oEf8^bJ*i7aB_y6-eXMee7=8}X|mVJ^WA*4o=1)JT#_LPW^eCD~<{%5EXq z?@1&^vMKw7B()?YMM9F~eqL*4y*oaA?tb6z_j4cj?>K(P?~m7OJ+7Ix*331VbI!G{ zNf)JfH@cdL99NZl^KR^uzn4|Wa@DX8??zXjqok{+`||E~bsE{O`t@Uft}g1&{#;E! zs&D@Os=Q*9G%KltkGLZebnuZ*d{eAo8@2~o6>=|V)vqTB^ z+7(=zugtYcQOdpcwn5yQTxN^X?zP*vHeZ=-9g*svf4fZvbGs;eyP|}9?QX8kSN3*A zDfikoL%3bJ%oe5HYmahmzOuI~Qm^FS?h8Y?U6j3DQNq3U53bEu_I5=n_uAgWxLvu- z7Ny;5W3O|&a+xDi1M+Wo0@vm%d%L29d+jyDxm~#|DN4E5F6Y{OWwy0NY4_UOM{v7x znIlrK=HKp4uFY5Wc0~#I+T=)XS1wDT?B}W|?XGu(^&DAG4b0#3v!mEE%IrCTvhxj5 z%3be!*0WtbJ(_#!>J)NZz3>Kmc`bi`Cy?c;&lv8NtMHq=vRw^DDOb_A*q^J{QQB3B zx7nYoDM$^<-(R`0?9bJ^DB=qJ(>G@hRMzT$U82 z+-pa3ZN4(w+M=|3ZSFhVu3YAb)X@Cf9mBQx%HFOh;a+>mRBl%;ONvtNwWGN^Oe0_QQEz>!dz}wE^|a`q_>47N}=qiB2uHg%PdhsloX{zwkR!fM2XSf z{*t1!$PuYGy!9+mLX;GxM7Ag`azu$S-u{xJl*ksPMUE)(rfe%piEL3?EQZu|QERiiriyV=f z>1~k`*&;Q|yVepVL`hLfWQ(lX-nI!*Qj`+eqO`~nsX5+WEKx#~6s1IJu52Mnh>{{l zq~^&MqJ$_ZN{MVyTI7h-eA%BUAxer;BDFxa5G6!OQA%Ws(jrHcSm^C9DN2cKk+sNM zFCj{bQX)sB7JFM*qJ$_ZN{MVyTI7h-64@Whd&H zM7Ag`azx4ZWebrlN{bT9y!Dczl*ksT<=%RhC?&E*>H}F%lt7tBC@D&bY*AX|h!QKj z{Ut>yku6G#9Fh9a+tv~#L`hLvNLqO`2%h}1^eR+JDWMQM>EQk!I3Q9_gy zr9`$UEpkL^v+Pfl5G6$^ku9>ec-tmKNl{8EQjWKtB}#~rqLj!MrA3ZN?U((D5~8FiC9*|n zkt0fe>+LTkvPEf;BT@&vEs~;?$QGqVj!1pyZEJ}VqNFG#QU_%VQ9_gyr9`$UEpkNa zknB&C64|1($PuZ-vaKj3vPEf;BU0bXwjx`U7C9nyM79tmL}`&DQa{KRqJ$_ZN{MVy zTI7h-QQ4m;Axer;B3q<>lx;-`QBsr=*`l<_5viYKf1-paDN2cKQCj4PlE=LLr9`$U zEpkNaxVMERN{Eu8l*ksPMTwuiy(C2`ku6G#9FaQVZEJ}VqNFG#vPEf;BT~P}{zNH} zEm9|CJyAlG6s1JANS%^xMF~+-loHt@by~I+r9`$UEpkNaSJ_sS5G6$^ku9>$c-tmK zwkR!fMCvzh3rmy`rA3Y?an{=+DN2cKQCj4P)bHN5mM9@gic%t5lomOnq!`s3VB}7S4N@R=DB1fdod;3d@QX*TF7C9pIr)(=qiEL3?05G7G& zwwV&yBBf0BEW0I2h?1g|$QD`J+cqIeic%t5lomN6WxTyuqJ$_ZN{MVyTI7h7PxdED zh?1g|$QGqVj!5}sf1-paDN2cKQCgG;cza2TQX*TVg5G+TC?&E*R>)f~Axer;B3qOe zIU*JI_F{<=qNFG#vPEf;BT^CBpC}=+MQM>EQaQ4%C?QIUQX*AAwh$#mNl{8xpcU zBeIIfdLmooh^(Trp2!wCBCD9JC$dG3$huV46WJn1WEGe7M7GEgS(nLrB3tB$tjlFR zku7pW))lgz$QC&wtAwm4vPF)_vSdAxEpkLwNm);1iyV^|fu9Njd`Tvz$W{h=2R#oq^q{tRIBI|ltPh^W6kyTCB6WJn1WL1~-M7GEgSv6!m zku7pW)(x_r$QC&wtEQ|cvPF)_swL}*Y>^|fYRh^eTjYqW8)ZF_EpkLw9a&FgiyV=4 zldLDQMUKe2S=JNTB1dE;WId5Bazs{LSx;n(9FcX4tS7QXj>xJf>xpcUBeHIl^+dMF z5n1(RJ&`SPMAmJxp2!xxgQmE%5l1fjPA;<=c-xjine~!#SwFeVmdiet%N)7Px?T2y zvU`!s`pIRsT;_=UcX(S^C_8Tw*&;_|-6`vdY>^|f8p?ViTjYqWyJS6)EpkLwBUw*m ziyV=4x2z|!MUKe2N7fVBB1dH1E9;4Dkt4G1ll4Tl$Proh%X%VPxpcUBeI&xdLmooh^&WXJ&`SPL{>9dPh^W6k@c{wC$dG3 z$Z9U@iENQ0vL2E3M7GEgSuJEeku7pW)}ykX$QC&w>oHkRWQ!b;m6Y{Fw#X4#EoD8C zEpkNGVSMUKdNLe>-6B1dGkmi0uo$Prmj%6cMO`vYyBmIU?&R zSx;n(9Ff&l))UzxM`S%M>xpcUBeI^6^+dMF5n0d5dLmooh^%(9p2!wCBI`L>Ph^W6 zk=0(-6WJn1WIZqIiENQ0vO36mB3tB$td6pt$QC&wtCOrJvPF)_dO_9`*&;_|b(Zx+ zw#X4#U1U9xEpkNGi?W``7UlolvaBbvMUKeoCF_Z7kt4EFvYyBmIU=jKtS7QXj>zgG z>xpcUBeMF+dLmooh^&6Hp2!wCBCEfwC$dG3$a+QA6WJn1WDSt@M7GEgS+B}^B3tB$ ztbwwg$QC&w>or+VWQ!b;HAvPI*&;_|4VLvpw#X4#Lu5UXEpkNGP+3o8iyVhvYyBmIU;MMtS7QXj>sA%>xpcUBeF)zdLmooh^#kc zJ&`SPMAjHtPh^W6k@cpmC$dG3$a+iG6WJn1WW6oxiENQ0vc}4KB3tB$tZ}lQ$QC&w zYrL!{vPF)_njq_mY>^|fCdzsuTjYo=ThwuS>xpcUBeLF=^+dMF5n0n@J&`SPMAmd!Ph^W6ku^is6WJn1WX+WI zM7GEg<^NZ1+2d)EEpkNGY*|laiyVwJekrw0yGKfqj zE6JDSH&Q61R5?5yx9Hp)xRmh{HFBwbblGWsM@+0vVP^vt+i8LY4lGn&o@;=!}z9x}e zrK*w#NnbLNY$7K}B+BDO>XC;@2Qq;yC)>&QFDVeWV?Eo2(+c$?v3mLGBl6NqUeOWD7Y&A{QxT zks9P~(wg)jBgq1?iF`wTA%Q|X=cFRJiL@j`$xO12d`r~DN);!!lXj#(8BdmwZ%LrA zQYFdVq!SrVW|NP}Ve%&_dITx9^d@u3Uh)fxT*`h(4RSYWO?r@#t*WH&iR3YO%tCQZn*q%V1!EFc@mH{@3mEyZh=)F$_nwj@Qy zkVRx2*+YILIi-~-!KiIwB_$&I8jNs)16DcM2}l0QhH@=9Gr8j&YRcQS&^AZfCj z93z1%mAZ^nC3ljRq$hccEG3_jpGkoVypG7Nq$zot^dw`+d*l=H6**2WyGp6Lq#1dh z^d)bQ8Ds_7N`4~Yio8F`HKZE|4oKbAQPb zq&s<+Y$wM_&b8b>Qja`HQe+C*OnxQBs__0G4alQp5Sd0kCHu*5Bz_&Q15$@PK%OUq z$xO1Ad_j(qKS{-^+-LF>d4)_Oi^+QOCHaY{>v=tpiliQSlJq2_$ZE2WoFWCP@m?hL zNK4X#3?q}tR&t8uR#&P7xsKdP9w+_DII@U*O3si%HF*7zy5u3!p1eZFlf`5k`H|$@ z!0VaZKpK)q$sjVHY#@8dF`{cSR*>?f7HLFUlb&QISw~KiqP2K@Nn?^C+2YlZz8PhvXLWD0zvzK^Bv( zc@{Ul9ECo+^w zB`e4d@&nO#@R}l($!(+sd4UWflgTo&lbj&&JJ}z(owOod$UriV%p)I>(RZ;8DNkyV`$#yqd2!UMd=NW~_+#z@Bp*?&{^L&`p+)Ets* z#%r2Xf0)k~a&vRuPvr7Pcu$coEqJaURcayW_!!$Ix$mTUOWr4s^O`3c$y2R(eLulG zhrHaH-{DCf6Y_2wwt0&COCD^?HcvAql3SnQ@h6?1<+V>nw&Q0q|2aM@+VfbFTb^fs zNBgJPbN%m%ZCb#wBy+O+LeKd96Q>6Pfc0&+7nQZ=~C+ zjOFCzfjoAk&ueTqi0cRQ`XYL$QnSb-!`PN|d!2df2!2oUg}qMf%KSn_0|FNVVCF2V_6#I)~qVE^~r;{ND4~-vY)k^7caJq~y6p zybs9pi+SwHkR^;?WX5~E)|T>FPg=jvKhnC4*AVHkoH^+S%mayD!LbbK`XOWRN*;4k zeHEX%X`Vw;e>KNnq~%9E_oVe2-kapm$Gp$i@>#r&&y4lFE;sO4lNUc>KK&_=1IgLQ ze#vsubQ6ygd44mWE98wW%(b`j8r;U~fIP6B$AkDk<1?8&wS(8$=iJ^-UTfs#UCb+Y zbN{~J@!P}eg*5+?@%AfTTjYs-jFVsUnk9`L#)JJl4&)fQ+LbZu2q-Ka{dI;yO?NtNeA zr-DkTimI-vq;64_RXtTj-Kwgp`l_0`P1R5hR84g|TiwChcd~Xv*1m_e?`7>Kto;yc zw_xqZS^EjDeNx?}+NegVow{3fVa@KW*+bo@daC3K+unOoQD#+U`s)wn#9-#{A(VXpgLlxCy)TR1ORa}o%mL8`n z>G7(vwpCRr^oAeCMjLcT`^c>Yd&s7ce0(FmGs2b}TmfEv=8u~Tz{uF>Vs;NKBTtk!)k~AUhUF9sBiUAbxi-LPV1l4pZb`(ppPq` z`B??c2^BKGsJJ<)^2{k!#GF<|&9CZGb4Haizo`o5th(C#t}2;x>RR(BXMQfI8oUf| zGFsnejBaFn{PV$n-Pi zdbqhrPcVh_6mzkD#}wA@nj(6dDXLeP;`&2#h5pP`&^t^;{kf^6cbdw2m#Lz6o2vQ? zQ%&zNHT0LJrrvAn=&#I8dY`#j?>7nkt*NUIn_Kh`rk?)U+^T;ucj!~*PJP-m)W4g% zwDC34KHuHi?`y1ceGllkuZb?`dr)8EYpRR+9@52q&Gcoyhjj^Gb6wW=h%WDIp|9~h zs;~1srmy!Ub#-4WUEBABuH$R1Z}vT@>-yU0dcLQ0eP3IBo9}7ez}H^i?t5N0@^#P; z`a0^SzE1j4-wQhFdr?2`dr3d(>#p1SUe?d~dh7PSKDwi?uYSqbPxtcm*D2pCy0>qT z?&}+@U-1pm1AMRRSAE0vK;H;G#5Yn8^NrHOeWUeA-y3?AZ;YPgdsDyTdrMFAy{)JF z#_9#WaeA?Dyk6#;pjY}P>eW75f9#v2*ZU^xt-dLGx9=Uj&o@;c^u4PO`KIY3zUlf$ z-wgeeZ>IjmH%p)N&DOvA=IArNx%yAvJRR`Q*J1x6o$Ft$4%3VIQV!gXerZ>6ELo>I#%l7Z>a+ix|?{$}5W;&VcyBu_v ziTOXc%kwjjyUWVyQ|_|uva{|oHuFz+S#%mtDEIT*X<>IccY4%a=B&QRT`pZ%#9dBF zU*;}fo>9_WdcU8y{Qt}E>HWU{Z!OQ&%DgV_=vB^r+~@VW)?I$zvzEJDvOaVD)pul; z;}_lPUViV?d)%eJOXl)sYck8Hv#+y%x_rQ=nb+S}+2!KdP2Bx_F*oThOKpC}UH*61 ztAA(ab$oDG=Jq>gmnE~yHk&%Q`}=rw=K3AIGRyMgGRrM+EbF|QS?=!M z+1>t=m%6*lTVLw!F1vRh;4Z7q9^x)n^?1`=#(Pe1m(6;-<1W413vZn1{#$CeA+-a-3{>tp*cxQGTsbgn;5AXN7?5>^edTYC6 zmL-Plb${NT9bdft?yZ@5-un$d=w4sP&ip)Q+EMrC2eXeysm&+cpTC`b#$En$r)rr$ zejMtT<1UZXzSv!Q`)j%2Quk-?`TBL6<^EiCdpURMy*|AA+j7Cx?&aR=&Aa@{DVg8j zyPd!9-`mfx+iGO@U&md3y(+Wax6}Xi`Tep_J@@+EUGH$0-u?3)zp@)M*Y_KqS&qv- z&feqa-F~uvX8+#%&wJbs^}EO2Z--Z#xXb_P{zBQ`_el2jUTSmZcAgrWS$;6Qxx3$? z3tPI&-`8c{XaDqjeU!bQBS&Pm_ul`VMm+0ozj<}$a&LU7-zW3Dmif4gd;Q>%nd`lu z+h%|M>+;OwGP%X=MtmHqt+cFyeAyWCsPyS{UFyuNC5=KVix=r(u% z-s{_2e_HnSbTs>VY&n0IyWZn{GyC_}^WL{NX2;bhwr8%tB0H`f{mgNh`7 zmtUkm)`s0>g@ASGdo_N$-ZyB@wxmw$6dc)c03s|>Ztp3({3l+X&(3H)Q7}n`RVtFMnf)M-i8qejmc6}u-p;H)`t8i)RBd5qemQY| zX8G6stm59D_q=)AJ@`=#_wrrY$E!}y%>LSC-!B!iujiugW%lpA?*6`?)7km5_xt=f zDD(UO{eJ&_yMMah-u;@AeLTBm=YiAu*KzM}<>{IC_lQvq+@A+`Y2+>^&ur{2z5D6C zKE2m(gX}mzB)jxJkFLsoF73`fo_n*$8Mm){)ZJf!kDhRsOBX)vE=Mox>@Md_OSwz$ z_x6q#yw{a)+biz%g}M!Pm)`SH;f>7W*)#k5eLgAk^LHIHOYeB(jU6N0?Y!5I_j`Hs zHgA6R&-2?i-R-^Y{?q5fyWgXiO>p=3Up+6U`^<3H8@+6vyYwC(-)GDJ<^FV8v)29D zo2SejztR1=#}pNSnaw?BQwx9;`c{{HE4^~PE6_+skH%zpX}&pgh*WZ%dC)A@~eyXkqE z&&_fRe{%0nsqE*IH_z~1Uq?SX>0bZ$dBBA1=gSv;&$`$DHNJBKi*an|!ic-{_Ve$r z(~I5fz1OGry7XR$-u?Xd=j~E=yZ`EW^S1x5pD)YZpZ9!CUs2Kh`R~umKRpls)qK*s zAAf(m|9ZTtySL{(UIlyH=>ELB>n-l`>u$HZOYd``Z1=m}pS{n4;@S7L_c(XT9)EhD z58mg-fBL!O-H!MCd7n4l@8!MEeA#i*TmF6g`|pl(>xVwz{(gTS@5*Jz<$^sPcCX*v zHR&$D?)Id+{HMp~(jA%4nbfw-(!1ZY=4M|1_teTPW7%aYyR4TzPvafWdFLU#$KgMH zJiX_`dtANe>F=N4mt>DSpPrW)M=E6J|Lxa5>;AqU*Lu-ic3;`kUFMB^)m?h?kzMOX zxIh1Q&mUIEejfeP`O;+iO?Q8XW=?RI?caOHU3Qr{Gjn;D`R+0?|2=nke&z~yxp?+R z?y_=vgS#v`ZHv2Hy6|&%IVJt2yZry^{q^qm|LO9t^O27Gc+BhdgS-5`=P7sj@8=`` zbT7YmYNU1kcbO7OHL-!a^o}?B4R7TB?41vqGp(`v^Gp4kxy!$fZ(6xO zAF18WU3%NMT+qq=`JwE1;>|aH-PX;$yz2H|?$Y~xz45|(T)f*k)bIa!|K9e$ZtI`j z?;v;i^{V0S^54&!jd3sE-F3XX^zN58|0=sNbA7+zndM*S%`%UZ_xpLrQQqTosNWQK ze;r<(;V%EX`|;-g|9qZop1Z%H3zxXde?AYEcCY{E^I)I4*Z+0CEAz8=zU!~cGrzZY zd6|zhKmT_w~7J zWae@A=KcRXPy5N;@0}A)y35|_v+nZ$)_ExJ_2E4p-f`03k6*mw7;nA5pI7kS2mk5& z&D-94y#MKa>fPU7ANilmALsu4yh7Z){Da|z-R01Q#oeX1owqFCrJQ^DzaQUU>t6of zKfcer?#j=r?r!(j@qJzQ=ce5nxXayL8@bDZJsP{que&vKm(6-S<}R;Vli82=KEHcQ zYxnZM&kHuqc*ec_jU8RwqjrU;4Z!2)Aw0UoBa2ecYnLADeV4SZ*gW`uyavnxhVUy zH_m$Nd*khe6~*1{rmraXFZ=uZ@9n+sz47#~b$pfC-@hMUW!|^{>HFS$zk9DQ@BQvQuHN(F9ankF z|I^p?U&mATyT9k|t`E7(ue&|!F3Wa*!d-gz<3BxK`sd@Ar``R3T&uIY?7p(QyUZK; zio47l#~8kg=2M#Z&?S5?O{*fbQAPQFnpVYVqb^kuT%0!QGXAws&9~PI;44%Vm!OTZ z_#T^9C26Bdse-sPZB!Xm2$!XeDyItL^0ZM`ayy#uxD~-yaXXstx)sA$b32;vycNgS za66jszFm&5<#sgRfh&Qp<90OPg)51#=XNyTi7Sn(b32;v#+Ai4a66js$d$*nxE;-R z?-1$xE;-R=PKa@x1&{E+VBm!DmececgFqBo#uOVRq<`yj^>+p)$r}y zj^^8UHSnF>j^;adHE~mJNAn%J+PE{fqxrU79XylU(P|cL_|9BidJeZ>)Liy$_y%1A zuANUCwSc{9zE5`tUc_EC->Ykgm+fH@>O;Q4XVgl*zi0S1-eYuHwWL?`4L+kj;`@6>t>N2yMt#h8_l#Q0H}{NM$M^P( zTFqP&;Z=?BEUS~W_zlf*PhVQR+!%JyyS9ixB((Fz5#Or9och-90 zUuna4*Lvd%wBeuR?28M~yk<;)T$<)NH3M)pn&-s~#C2(-9x{V)Guo)9%@F(yZPZt0 z7~V%4Ro*uoUr8HP$u|;TLmM^9HyV$oje65J2ERoc^|tRVJeD?UoNp{1Pa8GCHy%%< zjhgJ6h^Np-z3ZEVr_n}D_f5ewXr5o+R6L93`Snf1b7-Dl-wZsDHfo`77G6Xfwb(ZY zFQIu1ee>{An&;8C0DnO9c={IM4{4r9-x9ov=6Uoj#j9zaN8d8MhUQuGeSkO6JZruW z@u##=8-1(rCfcaYzSVdOZPZrZ8oZ4*YKLzv{+u>yr*A#pMH{up_X+-zHvAW%8}V1P zQ3rjS@gdr%BfhQp2imBkzU}x&+Nhs=JMb~usN=q!_-ERv6TaQ}7uu+kzCHL9ZTPQE z_u}7Zqt5#F;ooVa&iTH`KGP^2oBOl zh5Scxm^Lcc{}YbVM#cQcahx_P&wm0Jq>Z}Be-am>jk?%>8W*OGD&{|fFQpj+{bz9r z+Nje0bGQs`R9XLdT#jaZ^IyOfX~s9d){Jj7FQzYuS2Eo+?+P* z5q~k)=7OQG@+A;~}(BL;ZE}Fxsfs{q^v0+Ncr! z`gkPGSmAGgN7F{V<-Y^JO&c}V-w=#d@NU|uFZ`YG z9@_9*#e3CZmlz$*TO&j&Ae-J)H8}*xi2tG?2^}Bx(+NctN8Q7v39|E&*8Jh7SFb9{T`OFH;!&lNqRR}D= zSJ6gQ3@pM|(?(SbEWy=jqiO_};u~n@Gl6Be4$XWf@BzM=HmY9WLwqZ3RQhSN zC9oPdq!~8?Yj7jlsQUtI@%=R8MqoXDfMz}u_yj*h8`UhZ5kE{D)jY5nKSCSTBCr)d zN*nc9U^`CIMzsv=z>m{LJsH@E+t7S=2X^CUXvT!V9^8>;ObG17FVKt$fql3O&6p7Q z26v^6>K53KU!slb9yow|&_?wP9KnsQLmM?U za2~%)GhYf^z|(1?W(2g+Y9?*etbh;CrkM=}0(dUXY%mbQ^J!*-fe2nmGfxNuBZ-fns+7_j~YW9He<)2kYV(&HFl759iTF6%5wL7tux)3O2wO(?%5z-hnTnjVcms zh>Oz90fLS2rLuBZ-!B+Tsn(-mn8ds+o6M}7U9hxyA*cRVR z8)&fi!c5;8;9}X3h{CkB88V6~T#k6wO!>oP^(?87qQQ@S8MaMQ|#9o95UdI1Nvv zjk1F?@FbcsAvg=aOEV?}=iuoyV?uBqo=Gz%1Q+1hG-E<=5uQskHwZ4li)iKs!KHW! z&6p5ehL_Te3BeEW3Ysw?_#s|NGdBpX!fR;e2Eo;MEzPlBa1CBhbF3F!i$9^6Cj{5y zEwoXe2S33(Y32sOjd(ZB+#t9a@1Yq7f?M%EnsFew9e+bJ4g`1L{WRl1a3?-M8}(gq zH$F%kbtt$8AEu4^KDZYjp^f?>xDOwtId%wsgMX$ub_njrzt9|41`pt0X^tI&2k~z- z#}2{6_;;G)&EOGyf#zIC=qUElMg>DZ;Sg<9ICLCGXvT!l37khWCWKDni)hA#&}n=z z&1Ze+3@%16u~uV&SQiM;Mz3r@lX`kp^Zv};p3 z3gf$IqZ);Z;Jay~?g`%W-p>V}wu%+=Av9Ayg7SMjO>CR2n}) z8`U~g7C%XITo5XcpQbr32vxw((i{tfD&ps9-s7Q4xFgN`I#d~Vq4|6dRlzUOe7=XO z;vO`g@1bh=W!k7-p&B?v^I0FNiTlt-^$pd={b)Y-Lv`>gv{3^>H{(}n<^Z9(_%+(7 zL7{qhFm2S3P<=dE!DDI8A%yP3 z<7wXep~iR;%`rl#37$f8j1X#yr_#LlL(T9^n)iFCIi5>12MD#m^J(S)p~vt-nlnP7 zmUuDE8KF=s{2t92p-^l5KF#q$s106DGbV)E;uSPwLg*R1l4eW@wZm&@#)MFNyq0E6 z2z9{gX`?<3b;28Iqc(*)R(;{2??5|3EW;2o1qM(##)1 z!|*Yhu_81a|4cJhght|DXwEZ)M&na7V?}5T{*C6`Lg+302hF@9G#39!Gp`7Z$0|G? z>+nQuXyy{(NjOMz>=2%U!?aP6@Kl^bb3P$F4aaHDCxmC(ZbWlVBm51%hh`oU-jDC2nTLcA;Knrbknlm=gk~NRK8%~vjA`K`xEalHO86*# zl;$`k{1Z;n9H)ejnwD1Z11kIQhK8c^CIqwlZjh~_!-@<3`(=_8-_$+>w=DbJv z9Da^wd<&n)9cjk5@CDq3X5JFke&#JSV_n#XU!oc7!U5caW_$~WaEfMp3rBDtn(-}M z0QaLA)51~wD$O_+j^n{J<5;*L9!fKgg$v==X~wZ|VLXCn919o0qiE(c;bQm=n)yt) zIDV66J`=tizfCir375bVX~wZ|Nj!yS91EAmQ)$k1gv;V-H0MRb^9Hkk%A{}s?X6%Y|!Ubu@u1IHGh~^wf#c0N^NKbqP&Da&`g)N$~E7BX6q8Ym)eQ_C@u`ALam!lcGA_MT1 zG-Fp}Aij!b?1~J+SJV7GC^7_Bp_xZThT*C-^Qg#hT#aTP6&Z5zQDC znTGG98KWXIaATS=Dl!W=Pk1KHF<0a`o=r0ci=4o7Y35*&lXyPO94vAg zFQgf-B4_YonmJhHEPjt>?24Sj@6(K3k@I*t%^WOp0k5DL$09nwI7TyeMSS=pnz1Vq zz#r3$U6Bx8M>BRsB6tJM*cB;&KcyMFB2m1F=6Ed<$6IL5>qZLVZ8T$7q!8XoGj>G^ zXKt z%HpH6Q9nk?5&SFVKd68m2bZG-F*(9UPvC?!VVZebPF7pEDQa_+%b)6A)I?!(v6oVUqo zjIX7cU*$Bx*U`+ca+>1nY35fs&2V*^`BhGHd;`t=DyIdmMKiz3c?{o3Gr!7diEpBr zU*)vI37Yv;PHTJ%&HO5-4Zf9TewEV}-$paP%6SIgP8)ScPCI-j&9Pxldwdtov0+XJ zd^gRpVNNG}FU|SkoX+@un)AasFX9Ji&hzAS!!2q4Zj#d-kEV@!Bc~@lCZ`wuW=?PV zt(?AG`!>zl)SUkGxSRo8GM;9Rkuwlaqk>=Pi_Zz&K=5I;4`|)Qqe^bsqfIp`>9?U(6zo0oD z%sq_1q&e2hJ%YcZIo8WPiod6s7v=thf1o+m%RP>Nq&e2hJ%NwW9P8zt#6Q!FA-SjV zX__%4_Y6KmGlt}z#b;^8klb_l9L*S#dmf*s8AEa};0rWkNK^+ILuk$yMSa*uGloP1 zI85`rM?*N5=6q2!g7av`jc5UU5zYCcXcS*eGloRt_!62iBw7#`r8(}47Q&a(9QQ>F zDoWOXBNk#*=7id;`sR z5-p2s(Tpe2^7uxY@g!OS-$XN>L@VM1&FeW@3D>8Y|3oX}1~l`ZXcc@1%~%nwitnZw zE27o#y)^TjXbs$i=J+dG6E~xo=R|Ac<}~x1XdT>w=J+dmGk%e`_Y^?j<&!9Y0eu*AH#!a&KpNt;vqDD zYmTIBTqW8azeh7yiT1?r(~JqxUid?rF(KL; zucDcgMEl~8Y33x+{&*eDdp|k=Z=`weM+f4~G{;cUL3lgO+#@;!@1&V;M2F!$G;@jQ zaD0GfE)gAx57L|mj*iBMY33EtG5840ydwG*K1wr}h>pd_Y335q@%RMITp~IVpQITF zqLc7xnsFdH1)rfA2clE)S(>@OheXAUX?QpgC@e&B1<}^TV-uI70KC zrPu;ofabUv$2!79nEn~>@@C3b6gWUgI}OIu8Ez+U1-LE*g4#lW*mr} z$1lW)2XmkAI|@1H>BOV>IV@V|U&2>`|)S+6*TYtcsp#-oHL2H$E9e_nZ!HbGBk68cqd$eW^NGgj4RU24dO52N;H3O zig&}6Y0jC%yW=V}=Sku{aW$H;BHjzvpcyOTy>U&Nb0hJ-xDL(Vk>maG%{1pp;sbD9 zn(-k%5Z^{KKEwy%+i8w3;zRJAH0N*Q!|**c=SJeg@qIMsM&cuJW12Zbd^B!CGoHl9 z;HEU=N&GF`jAlHEkHyVt<`41lxCPC45}$}$(u^nZNw^iwcoLt2Thoju@u|2C&3F=@ zhTGDNC-E8h8Jh7VJ`1;_je0IV2e+pgPvZ0N3pC?Nd;#u4GoHj3;jT2}Nqh-@iDq6A zUy6Is%q!x{@XIt~OZ)@em*!X_{vqy9GtR_U;Q=(`OnfySNHed9ufc<8<`wa^cnHnB zBEB9Eqd88Ae}ae8j79N{cr?v1S9~*mi{{)&d@CMHb378?j>pp+kHmN2Ni@eJ@tt@I z&GATlH=as!Y!%;wXV4r^#rNVlG;@sjK0J?RjuHO`FQ7RdiSNgYXpTqX2k;V_^C9tr zcsb2EkoaM|lIC1){0L6doDYc~#UIfecf^0f>uKg2@#ACV3@sF3mZO zywW&EbDWY_7U$6%r{tB#7txGSc@^-*G-Fg=MSKa(7?oEE7o|B)$*YVnr5UgCs^H6L z#;d%l_zIfwDz6&0XvV9&8n_hAc$HTZm!Ubwn^zl`qZzOA>fnkr<5k|xxDw46l~)&6 zp&6s{>fvfM$1i#HaV?tTm%Ik}Mw;W7ygTqsH1nCfhB!eppUG>4Z=spbKG%{(Ws8NQe197tYsd_T=Okh~W70h%!??=jqr zW{k>fiJQ}mQF*O!3!3>)UTgdq&3Kj92DhXcukzaBRy1Q&-ZQuj%@~!}4!5Nlm-5=< zb~NKsUI*Ns=6ENs6YfBBypz`%ccP7YA&yhg|H$2t#xtS`cA^~HFtz67t+Me#a)DPFHH!|U}Gc!Rd^23-n&qRZeLjvv{w54u7Se$6x7=c%Oa&@6%oI*SahITEB$9(LL}t z`ep3s6n1nUykGaj`}HgMTm35jR=g`RAJT8* z!+IP(tS8{_wT-{mlkpM#4nCsa#Xsoj_y;``AJwz*Q9T#`sORG!^+NoUUW|Xz@8M(m zeSAzW$H(;wd|a=@KkGF9S$~92=#TLUy$=7PH{f6Nr}(7agiq=%_>|s;PwCI_Y5h4q zt#{#H^%wY8{Utu5zrttq*Z4Q>;NSGO_^kd8pVf!(@A`ZEyZ!;6(?8;K`WXI0|BV08 zzu@!w6h5zi#eeGG@Spm3d_n(#FX%rpU)(QMk~XDED{cH(n;0xuE$YR9mmWKIA&_$xVaI>%}qGZBygU&1s628;)3Qje37{wUu5pYh0I;J zkhvRQZ0^MuoBMHL^8hYv9>kZJhwvrlVO+#Kf{U0(aZ!`RMa|>5n0W#hGf(16%~SYN z^E57Qp2fw@bNDjzJig3y#Fv{F@a3ipzQT0HSD2S@3DX0YFfU`vq_AcB;F6{vE@@uD zrOd0ilz9!8HiL0#GZdFGuj4Xi1TJev;j-opT+Y0S%bB-vc{2`|Hxuxc#>Q8g$+&`f z2Ujrf;;YPbe3hArE1KE3qM3`YHuLe-W+AR*7UN3hJ$#LMA75jZkXJ-PZQ}zGxXU@6v%owwv6k3oa z$u?umOh{oYQ}#hpVaz<3%+_p{79}YuBuP?9DwWcdN@W-?N}K=te4q8s zbDwAY{$8)o+vlEh?z!h~=bn4-_qo$oCF1+4WPG-2fX`Nq@cq>B_VzMpy5I+?H2h$djvuTt z@IzDAY9M}uIuD<#2H|tn5d26r3_nth zz>iWR@uSpe{Ae`>KU$5&U!X3=U!ca}$EXSTF=`_ILREmjP))**Ra5X|)us50R1y9n zRf4}*mEkW|<@iffCH@jsjUT6`JU_(^IRev(>_pR88kC#$>hQ`AcQ6txOps8-_( z)dToT)f)Vz>S6p;wH7~BJ%%q*kK>Ef6Zm4a9$&1U#+RrK_!9LTzEnMrFI6w%%hb#G zGPMbRnc9rMOl`rJtF8EQwGCgP-o#g^xAB$g9ekyF4_~D|z*nh{@YQN3zFK{XpQd)> zr>Q;o>FNvoboC{EhT4apq4wivsss3$>O1`9>U;d<>PP$)>Sz2F>Ja`)^&9?5br^q@ z`V)VZ`U^ix{ez#S{=;9*4_RA64o%lJ%EDix-1yll9zR32->Hi5cd8Qn3RQ+*p~~@hsY?7^sv3W{nvTC)&BWiMuE5`;uEMWW zSL0Wz+4y_a9Q?g%E`F7|0l!M!h`&$WguhQMz^_(|@T=8g{QYVP{(iL-|A1PCe?TqA zKd4sVA5?ea*Qk~FHEI?9A+;L+ka__Buv&wESUrq?M6Ja?q8`JqRgdG>sweP|s`dCs z)zkRL)CT-x>N)&6^*nx^dJ+G)dKv$?+JvuBoAEVj3;qeU75{|VhJRAMiGNbPjbE?c z!LL{E;h$0;;Ga?-;h$DJ@lUHy@z1E;_-E7}{08*}euMfF|E$`Fe^%|sKc^1hpHtuA zH>&UP8`Y2a=he^n=hY$n3+gxg3+gcbMfE5CMfDf{CG`*fCG{WvWp3UW|0~so@xQY0 zuP8TulZwZ0QVIB1RU-aXm5kr48sImpM)=p%@%Y!&3HU9l34V)ehJRh1jDKC7ir=bQ z;J2#N@NcNr_%~Er{5I7NzfHBrZ&w}g+f^t0o2m=`O_hd!OQqxAQW^NSRTlnj)g8Y> z^~CQ`z3}g-bMfz}KKOT4HvV1JAOD^jh<{I=hksuU!oRPE;6G5q@E@oV_z%@c{D*2Z z{v$O8|B)Jt|5#m&|5%N~?^F};JJm$|C#nGdiJFA}R87HusxHOvQbqV(ssz7VmEm`* za{Oni691X1#_v(n@q5%v{O9Tl{O9T_{1@tK{1<9Aey^H?->c^0zf?Eizf?Ekzfw2h zzfueE`_v-*KD8MCwOWGzS}n!zSIhAG)pGndY6boqbvOQiT8TfPR^h)@tMT8e2k_si zHTdt;!}x=0E&iZ-4FA1)9RIy~0{??rkN-hEjsH|4qGv|4qGz|6P56|6P5AKdg4*535h{f2iH~ zKhz%lpXv+zpXy8e5w#D0MD54_r4Hc#Qs3eKR^Q|QRzKqZQ9tAVQHSvVs^9Scs>AsI z)SvkO)L;0c>L2`3^&j4)U2PfvYX&8*7;WKWv>UHDKsqx-C9Ix5Fps_W1g`1HQiQgiq96 z@QFGNpQO|ANjd|cth4aRx;s8a_r#~@Uib$3TzmuF2j5U<;~VP!_(pmlzL7o;f1DnK zKTZ$9AFqeukJlscjrB-;V?7#wf*ylEL660ss4vE!sK?=(=n42HdLq85F2Fa{lkm;- z6nry%DgGo~gg;4_;7`_N_>*-x{uEt_KSfvLPu0`$r|Oyb=K2bJbA1)Qg}xf!LeIvx z)N}AH^<4aE`Ud=I`bK;!eG|TwUVv|{7vWp$#rQUQ3BHY9if^lz;oIuv_|x?Y{OS5` zd^^1o-%hW>pP^Ud&(IIx+v_#>_WEJ`nR+e$O#K+XgMJ*}K|g`-sMq5=>ZkFY^agw< z{T#ltejeXhzliUmU&eRQoA9Z6Gd@*s!Kdl1_%yu@-&Mbf@2cO%r|Wm{>H0lRrm?|YWxH}8=t4=;Pdoc{6u{Nexkk+pRaGi=j#Rd0=)=dpcmskdI{d6 zm*OYsW%x;YIexNUfuF4J#!t~J@l*6Fe4$>AFVqjRQ(vfNI#A* z(of)v^?H1}%k?&Vg?UZ#!`aOJ={s3R4Kf+h*o%m|~DSn#Xji09X;HT>^@YD5|_!)X1eumzUpQ#Vv zXX@|pm+SBGm+K$#SLmPdSLj3dEA?;qEA?UgRr*i-Rr)XdEd39Dmi`ZawRW{*{I9tk zbzP$^{59H*pRMEZvvmUgTAhf$Rwv`<=mz*Xx)J_5eLVg;eFA>2Zi1hyo8hn5C*!Zz zr{ZtWE$}z!)9~|jYy3Rj7Js8|hrdy`$IsUt@bh&i{7t$G{wAGT8T9{yH62!E>{f?uMC;g{$U_}lbI z{B3$PeyJXVU#iFAZ`T*&Z`b4S%k%{NGCdK0hc3Y1p(o*&>nZr<`cnLzx(I)#F2S$R zW%w1k9DkRt#NVZ>@ptR#_`CH?{5|>#{5|?A{7QW_ex;s`zgN$}->c{1SLqw@tMrZd z`}9rt`}6|*YP|@*S}(@mub1HO*Gusa=w`lNV5cU^?v+w`T+hp{T+Uz{vN+k|A>EH|BQcLAHu(&f5X3^ z5943df8t-%f8k%!|KMNJ|KVTOt}___YjprVJLbr<}bIt~ApPRGBcGw^TgEd1NLJAQ}miQl1n;os5c;@{DI@bBtu{JXk8 z{yjYq|DHY%|GplCe_s#5f1roqKhPuaAL^0#5A|sLM|uqYBRv-XvA!7pu^xxtsVCrf z>WTPIbOHVoJqiD*o`U~WUy9$Qi}1U234XUO!|&GR_|J4D{xe;T-=nAF_vo4U&-E4f z&-GRKFZ9*;FZ68uUOflDSI@X~@FISZ=(s;_=E#z-ucJudQUfWi`NCRwI0@bv!=SIsxytn&915GklzNGCs~a z6(4W4z{gvs;p_ynsRKEY~_uWxn0*S9+16Rj@zL@N!SWToSitPFgzm4#2X zy5m!~{0Y_={0Y`r{E61Z_!F&h_$Jl_d=qOTzNuA!Z)#1#H?yYTn^~9QPqK>eCs`%< zldUrR$yPc36sr<{idBt2)tZh!)tZTKZe4+IZe4|MVO@=HVa>+3wC3PjT66KISvTNM zvu?z$+(t;L^dJ%;aKJ&x~SJ%R6Nt;ct?p2l~wHsCv1&*Ay&iulgf zi})_q%lIzVCVZ;38J}ux!KYbU@oCmJd{^sDd{^sje7f}xKHYi`-_7~}-_806pJDC9 zXIP)&Gp*hDOluE5%lZPJWqpZ1%i4!O%i53cZXLjPx4y&ou)fFluztk%w0_3-v<~6V zwtmB(Z5_tlJhqwU6QNuOstk8)u?5=y9|K{fYQd3~zAwo4{x|Dn;wiMsyG*X#UEkPG%D7`w@&yJh?~EIjDA9~ar_N-G!@N9ucGZ}FIp8(09ZX2zoFr8 zBctz7-vk%Gci`^{qsI05d&}q=bUXSLHB01gKBH_@glf=>Xb)tx2c>c~X z>W;>u?dVt3m7Q`fnt-lGH=w)Ghv>``T&_FNz33VAFG@I(eT1Gv9h>ksqS5(i5o+6% zzo(3DN1M^=W^B)s`Fqyr3UnC#hmJqRy7PKC{jP{_oRF|s~Z9sRVaV(%`P=l`Q zBXl;ZLRX?&(a3cEt~?snjeUbk(0cR=+KVbOT&^$BkxaI27HvRf=t^`Ky7esn);jtc z#dhZyL51icRD)he-=N>n@jX}$+K%2w-=dK{Io8l`=pWSRY|ejl4jPZPqw{*v7od&k zzH`}U=oQqix69Q9^+%IX1-cczgFZw5qTl;+tYmY}peOoq9-w#7LG&xC*Ps3eWuVb$ z_5l8#H#&D9$9@j`^*oLpl!?wkqtFLvFN!&zzyCdm_M-)8C3*tAhdxDLq2E#5V3(^Y zYKhK3J>2uN45v(6-p3C~8A~YRchdxIK(VuAINVYe+7JY?&Mb;?(hCTWKH5|>c zgxaJ3koyA8H|(ADsO=@}Yjh6kHJ<&5-k-oZ zfexeY6G=n4=z@H<7dnC(7SP^F^gT#Trr$w((T}KR3g;#IrjWLw>`U23$b(LuN*ht5 zBA2Tb>W1z|HRwe&yO_QNO)jA?M>ph%TeJp z&Mh<>?Lj}GnCa|ebS1hGEt=tSEknm$!SR4zKp&!gSF%3nUv%MB99QTHqgnKcsPomF zyXg39*!L(C%|o}LRVaQod8j37d@cJ2Z9wm!wsR?ua?pb7U9J^q)eYOdRNJLuM%I6l$&H@jTS?=p`trD{?K(OXE|d4^bPtQ-Et>=2)gwim+Kz17R9gRJVIxpM_18y^c!;B z$G$-mQ3<*nU9+0)gPPw@e~e~4K%MBb2ib?{Fj}*Qu?k9ggnkYEi|Va)xlTX{kMcii zg`PrN&`vb!an>LGiQF|@JJ2Vn`U#ioX7noBfp(+TPtrf3v(ba-8MGC(ThFx!<)D>l zEqWGR@s!Io2TgdI?Sei*U!z0lmkk{IsOfWTXVep2vyo+@<>vqAITldo7ub)e;w9=r zOVOB@+2-gnl>Q3yq9&VY8(Q)j=Ky*JrN8cS4MNYM?dUV~&{p!$@HaTVQQ9`nRdhaj z5N$x)Q1|Vet0>p}|0dUSH0y2Jh1%_)KSe{{VJw3tqgT-fXg`|sF6RZh%l!Wy=LZ`8 zKIc0+f*O86zkm*+Yd>+h7NQmCPgL(yuG454dI)VqgFkb*Em9)~nn*9h%;d^z&wW({-@8%cOUj>rF@qNpD8FITy^omt%;o zMw`&9Xft{ZZHduDU}_>SH4&GZNJ~wGr6#g6mWaw&A}M2upo}GQGM0$RSRy53iI9vX zGBTEkNH>v?ZXzJvL_WHScytr#=qAF^O=P2+h(<) z7)L~69Fd4|L?Ffyc^F5;VH}Z$aYPu#5m^{VL}5IUgz-cW#uGUhPsCt6k%I9=2*wi` z7*9lCJduF$L;%Kf9}!Q)Up$e1@kIE=6WNzSL|+P#d?`fmrLcihh}cUZQZL1&k%eNB z8^x&xMBX(Z;;sRab`6NIYd~aO10w1g5J}g72)YJD&NU!nt^tv9&54j}PGnqjBI248 z3D<%MxE4gdwIJfH1(9wh!tFF7+e}=WiDzp~1Y2t&*V?#RqSH_-)Ec!xZPDqd9XbQG zM`xlAs3YoxI;*xsjh?#((7Db;}psSZR&bs!?D1CdZ2iGb=zd(wx)ZHHccHt{J!mDm z7p+3~sSF}hGKfgYAQB~m2$T#WPcn!&$sp1sg9wuhB12kqjb3GKdJtAQB{l2#^dSKQf5;$RN@qgZt(TB0DmO=*S?FBZCNz3?er&h}g&= zQX_*1jSM0)GKk2?AQB^k2#gFOFEWX^$RyGtlL(7UA}cb9sK_LeB9jP;Od=;TiI~VF zQX-QGiA*9RGKq-DBoZQ%2#8D~A2Nw}$RyGslL&`QA{#P^XvidzA(IG(Od=Puh*-!X zQXz{7g)AZyvWQ5?A`&5s2!t#m53-0j$Rg4pi+lboA`7yJD99p`Ad3isEFuT8h#1Hs zQXq>6fh-~evWN)CA`&2r2!Jf!{GY`e|L(l$@4*}X9=zG_!5jS^yvgsu8~h%;x$nUn z`yRZh@4*}T9xe;TA~%Xd@u(h3K=n}~N2?#UbLp1i5<$s6jPyqWIF8|j|BiSEf8=$^cJ?#VNbp1f)1 z?-QU7s3YoxI-@Qq6{VrBC>?b}87LEFp|enT)C2X@jbqM6z0f)6T+~~i5Yq?sMcJqy z;(ct)05lNgp!3lAXb>8VhM=Kn7#fa7pj_f%v^Lmx&h5YylIP>k8VOYqXlRoT7+&vi_xuUi9R#t zHndcCh`Ajt(;Z{(K+Dmcx>L*wbQii?caFIStwi^tRp>t5C1y3cA3cB`L~C?v%tPp5 z^axsu9@S|vkD+zwaa4nz&|PDmMC;L0=xOu}+JK%#&!LUzdGrE$5xs<7Mz5ev=vA~C zy@s}+*U?t=2HJ+Uqc_o8=xv=Ivje?@-bL@B_t6LFL-Y~)80|!#pij{*v>Sbf_Mp$v z7icf~5`BgCp|8^gB9?{y=}CBj_*m zH~L3s#Qcl?Lr0Oz%7}?U3Tb4aSmZ`=C?3^A38+3wL_ATCN#+~#DOOfY1HLcc5H&)_ zq2p0wbOJgNH9<{LGjtL<8J&VoMa@wQ)DoSBTA|jc4Qh){NA1uVR`;0p=uFfBbwr&| zXVe9yqBPVMrK4^r17)HtbQbE4dZ3=@Y}5;#gU&_0kr@k~9Fs|h$i1%b|NY84eSrVZ zaWNR>Z)YHN@vUmZpWs2h?`+b~fS>a#Lf930T>aruz5#0ZIII`*t)%}0f9K1OhNnRf-%m8T1I1qikGd*^^I=NNW5U;9 zKfWAiQhtSvV_MWR>?&09FJ^Vh_lwT!$N>aAMdNI4i{|INqxEmOr3TMTfFPseL z#XKu~7cPwX4c->hvZ3MG@Sd1z_)yGN;TLdSjBaGu4EA%SiXSK(FRYgIo8hxDTZErL zkL!E!M}>`!Gr4V`$CU+Nin$2B7ITAeweV%(Znz_+@$sA&F_VR}gtrUV!OvrM!>?nG zia)6_&zWM1;gOgJ#J>oS#_WatTz`sBIe}-hswX@elMDN~E|rwIFh#utJ+Ak}e+`?e z%o9!edC=p!1U6Mwu%GKD;eD{V+9Lil;cw96ifdxn44$EK#ZMB>fSuI};ghhRYn%AJ z;{Oz;H05cWN`pPrc;V%+w^{=Ss1IR3*Y`r*%=l))RN+A3cwx2hW;j?q4m+#Yg?l9Z zcVXg5riNC+?!w{1DZ*L8rNT#rn}xez5A}!exRXuWI>Q0#e0YJHBfK4YTn~$XLHs+y zuV9`!`4pbOsuJN`SfzHtS*rc1X0Ee^!-V<5YT-QL3gJ58COA+14KGm1%?(>Zk1Jg` zKsZ)dEWBEHtMCEgv%)upp9>GcsVbp`;c2i+b%(Rm2-we6D7;#DJ6x!q6aTLG1MoIg zza{UsR2J;#8Y-M5yi&MC_=s?m@Dt(BaG{Dj&CGSGu$yp@Fkd)RcniE!JqkUpmxb>O z_rv>D^HwH34c@Q%!FBwuhBJ=enV9sigolOoTAP%Ug`I_cgrkI0;Qi`y@e73a3fBu? z7k(=I0Y0l@+nDQS3pm4-311?1oby^;3AYnL~9EBr>i34c+sXYlM^^%4$;9#?_*X)u-;5tH(&@FU^3ko&3jhPiNt>r&`( zT`627yifSF@D12h^ALh%HHLqycETRe;~FB&6IKeZ7cLh*DtuY^K5VM@!xa6W@PrN= z!+JzV-d*S(o#`9(IQXlsf=BgA7;9~ZDVEiRd9AZyiZu+jvhIQ%t?%HquAkvq)^VwZ z?S;MJ5j_T;V_he_7xuF@OZqN&mUT#2FU^!}0sC2*;)lRf* zc%gM(SHp=g-?|evwH|{*tyhE}NXj=b-}*~@Qo1SMMtC+Xv?jnKdYbqJu+-Wp{8&uOCYW!1 zDCq~_9oFB%(dJ-&zykPu9)ChlH;Q_rfDq zv$J`a5nCjjBU~X|59`H#43Fp^#mDwC{$ycSm=Zf0Hjcekcn>@&_Dy(1ea z(oT4ea5StJTP%K#@J`_q!Z(Cp2>%c!pKEGpBkTzq$Bq$J!jobb!8WmPz^2x2@jr=I zy-iAE*g19xJS%pka0Bcco6yJPo+9ib>?<5CEEHY=+r%yuze@O&aI0{a@JC@xUsK!h z!qbJ_;aRaGgqOm;v9sY3eTVRI;p@UZFef%9n{zF;H5?T?93IhAgtLT8g^vn13wH?* z3G4MUq_>9G#SRx1!&vJENxw(< zwD2wAJ~$)xZ#XNqQI47S4B@%L3xp-Y>x3(WPr~bBcL)!{g|V&A<7|z+1U9wG#9u3Z zsqi7;^YFgd!h>*c z+@MR$T;t$gcLCfO_l59V;U7Xh&ZH*_o58*Ag~DaR2Mps*8gJNImN%;?wg@%Gtv6VU63A=@|bJzGM97!XG5v zU0_n03)=}Z;3@HIg-;1z748u36z+$6-4}Tb3xwscWBftkZ$dT6q$CSZ6t;mq;>QY$ zV5_*R#4m#9#~(l0@J!evzK?JuY!x?2(x(d-!b{@+hTG$krWk*maDni4;r+12?akdJ zDcgmgz~cDiLcS_$P!Lg>S$| z;s+ENj)O16Z--OkJ`?|yaD1^zpCYV=HExr;*ZnH~t@!K`!@LCUvAh8wuVHuf~ej)xU1eP@MyhGv(0us7w&ae z!=v>M3I7(>yVlfZa#Ip+!>1(NEnF+W=7gp1~y^m0gF4Lc?*g?rtf34elTB}~2Euu?c1*0`6#z3!A744Vks z3e$u=ggLNP+$iB>I5=Ue_)mr3!|@3t=b7y=364)Ff_vSMiEn?SN$D!=4Qt${%wG36 z{9bn%EKT@c_`6WgH)T$QS0>yhyj!?d(q9w5NBE8KcQ`+x>?Xq*!s}s;dnLRhq20}f zslsz$je88->%L5Qt?)MCgTiNp+l8MAe}WGsT(-b)rtk(><6Z&BC!Da*u(`0K@GM~; z;V`(@y+yb~_?d9@B9lH|SS;Kx{7Lw)u-+}EOe0|nVFzJ1VPD};;TYj0VY%>f;XL7O z!n=iQg&Tyg2zLl~3HJ#P3I7wuEjDdv46jUBC|o9dK=_1kqwozlKcVlfhJ%D-;T;Jd z2tN}ZgwG_jSYnt4Tg7FIA1!{0a3*{`VHf-)Vf<}|)$m}#QTT7d4NJ{j_Xul*uL?gD zej_|0tbe;Hc?wLae-(TtVUci^q^}ol5$+UzC;Ug4yv)qoLYOAZ7LFE9fuAJI6y5?4 zCai(~CcFgqy4`meHW9XmE$c6aQ{z@k%EOYy7p?4XM z5l(`8-Q~i|h4X~B3GWuJ6>bo|BHSU|CEO=GB>Ybpcekmtv9P7Ey)X-&Q~wF!M&TQ< zRosWdZ-htS;QHzJnDqW|aQ!jxlKRiW()wqwH0dLSlZ4ZSHwsq>9}~VTd=Cz;zfb&O zVf?+OhGxPJ!d}8*u(bX}_^gxdS zsec2U8n;~hO1RhkrTB5HP3~l26|8ZaGVAL9gI`xa_I|_TAa@yXuRB9HP`Fw6mT(t* zq5kLx495$LVU2sP_Rt~zXKkZ*yT}^(nmN_I0?2%{7xA2m^q4?z*cdcgy#xJ z2n&SOFg39T9;yE-)QKMozk#jdjtJ|oGyW7|XJKz)uFxZ#22&H~!8VC^3ZH;I64M?x z>>q;(1RRe=)o(@e{Z%aqN1cw-dL(sc}2S?-5@3lu4f`EQ2*}lbe(H0-j%3v8;C! z&wkplzi=e1aTkl9D_khN3x1t=6mE}e_>8IHMEFYLt-=+;hlNiIUlP6ra}xV(Fg#y) zA^bY=ZQ;kluVIbbTc>)~l&mjo3g1m^BkUyXDI6#qE*uYkPh28=K)3j}nd(7QvQDUkVQjkHDP7k{1o939o~xNw)}>3)cwO3ttd! zhvy`@UNURc2%eMF8V*fbBYa6xK7#WT4@k;i!iF#N?lS2rI5lpO_@%;zubA{^!gjF6 zZE|xGtMHd4{Vx1Zn7GO0wt<%=^%4#cj)Gq&-U4$H?}K?s&0jTaC(ID`5uPu+5auMl zE&N#cHT*hp>}JD!;bkx<@k-%b;SzXR(n{e&!e@l93f~ld3TGvyyk^)^*cHxC><1Sn zy&?PpHca|M((7$8B~KD|g!2>6fen*}i_eD(ld6O_!8?;0zHZn|*bdgXdy5|{%okn; z*CqWVbZ_P9Q_@`FLg8Jo#$5y7Nb2;4VWzMjP^EA!tRi#K$8B7q-+!JggJ?W-!dF6EPxG@?|}0Y9})k8aEGMq zg(oFn{I;P-SOII?*TXZCV|N%P3r~hM?r!3r7rrKZU--H3fbg(Ty<_IBFKi0WPOgMQ zlm8T^ylZ@0;n^@R`C&LU?s=G#ct}!;-!tje!a1u5S;X&aMVeC#*Te9$E zVLM@}@Eqa!!jZy>a8`1OaGLNs;Vr`D!Zq;b;>;k9wvUGuu?czxJ>x4@Ok0e!Y_n} z;0wvtZo`w{j^s4RwiV77-X&ZIcO|#~%&@DlH>`1wg5M^;CHzRZPtyN{eQTfH{dT3EvfdB^>v;NuMmN5?&*`QMgRFTKK4Nqwsa%JHkD}?}Wb!W49x;{B8I`?DQn@>xEEng;%|~t`n5@) zE}RQ%+}_;#@HvT33A^k!{w(1Dn3wX3aGP)^ta1M$KH(dadz`Q(^dv49-Y2YqjD>_d zgnNa*!rmz*2MnhPuY)yiZ<`apH7#r`Yz1=?I}5Xf{e>fh7YPf6Rl=);Hwl*s?-i~S zZWL}7z9-xx{6_e@Fy=e6!~|gzn3vL8*iqO+I6yc|I1W~&+zMxW7>VO2^NoRxB(q+Bd45ne4^EL<&oTDTQ1O!-v! z3*=vJWnM`^UU@<9)Gn@`p6R{1jUR7ZwkNNss5C#X(sMy!<&=Sym1ToH6%~1tJr%tx zW|ZXjD)1KTe3uo3*e1NC2&g!BTpaOrxMi+XfMJ+qbQ$DG*ym)Y4VM(Q@#H>ri;%V$1 z+3d%#ivnejanqaf91!J^*E~?;2oKx*SPBj+o#rVYI%!hG73#`D&Au7pnI3t${zAD^ zt16-vOz-0AlUGrg-@8lj&R=wsx$j5YDIPKP}BHh zJ3XZJ$9O9Fnr1)EZ5x=g(l#xufh3p1fy8qy}B}(Bs zI>B0%M%>n>oVP0f#*Dn<0(I7Lic{qXPl2bbsB}iul<_ zhd^G2Kd;u|Xe(egp}z|cWMroLy6j-z+&gHqgSLOr4hY)p+@K$T=is%Upd|IpE32$3 z51z9o$u=4ZG=`jh)5}WBD@S-PtKu3rf+0(v897{*%d7K>LW}h^muXuHd#m4cuHO}f zr6m=iMQxpq??4LlIj)|)su)eVhS8~{PDpj-7{mWVs)}T&Vv_omR29>IGjL(5Z)wS- z!pW>o!N|OdslBJ=6;}Fkde0%4e8Dz7gnatDy`pjT&mR6PLdj^!3R+UBV1pMn% zXQA*;HDWu`WR2v!idx2ZA@p~|$5J-x*u^YY>ipk!fSJu~wy2vRP`7lJ5u4i8SC_xv zidK+*g5ur*Xz*a}9kkg&+dpUr1Z{S1&<_alj8;bnbLjIzCwqrZWZNckZBwaf_DX6^ zb`72G9XgS1o5;0IrFOMfYMZo81&(ppJmTXOD{JGJ;zr}DXl6h7+Ic|?=g4&B$;bbn(KVejL~^TRi0sah2;~{Tshf= za&gF`!wxwJQ@aNH>s%&$XKI8Ct3SW?9TDllyOZEmljLK#!;P@ii05daytfrm%hi4H zppA82JbYzL?-6xrzM)yvGXL|Hz_;+I-JsbdA@_Z@Js@ir7^#HRW-H~t^)Qb)Y#EGu zBIfzGZeWHqs`m~qedD*H;NZ&S`L?vJ{D{CfG~#v(RC^3ZQ=qKBaZzjak28ykq89UA z63u1KzcC^o34s9zyUf52z>X0Vku zi4ktg0ySoK^^F079c1sI%?{cDL7SZ$^aDbCHW%e!PCwfeSLKkb(24Af^w2EZ6qn18 zxoi_%(^4}+GP7+{{cKa&Ss?}cg-&=cdLfI*NH>?gU;?WYI>|bPPG;Mt`q`$u*Tj&T z%r!AM+0Qn&+=R0ke?1dbqbYTvVxRO{3*g`6+8wB;2ZtJ|AwHLhW4jxqTyU5XvBNgi)!F%* zLeh~O#*XmhmvTov!}o}wf8NCM!u(-Hd6nipi1#?pE-mJL$OU;tQ|n%ET^lCY!ef8a z(lxj(2IQuvySTZ_NcVN@!K~gvn;o?MgLXjBX6FVyRnj9&;lYgW>@pn!3mI1J-|Dr_ z_S9~{Lo;xunMB_;&6XB=J&U;Y%*-L9lc?qD+_R>#Iu2k;)U}`d>l3vt{=Ow@A%|;p z)bfrG7;M`#^ofowLw10F(BNMKhf^?YCR+z-W(9ES8RFSqa`rHwB^Z8 zwqGhDZi~QjqVLQ=vAXuCDHz^ahBwb~>zbLR9k%kmMcUG$Y`Lyf;vcK~_mWBT9r|Hg zGbGOp+5?LTq#wgwN1$x2-4b!L2WE(V9GYVO!#})XQ8q$)aD{Cv6-cku&_LyZ0^tK~ zf0gz<)XmpK|MRjyO(r9>U+Nt)5Xtb(M4IiSAf4L15eh*&AjIY}r>`6JKJGUCC~3jl zynZ9SHk0hIL}UlDgNMSSDAs6}j}xo9P$G%MO{-gg$!O3-Zv-(l2I zFj}@bNbAb?jqrlQO16@jk7xnLexbW9bg)SwCI|6ehIkJD`Rtq1cI?;=lGKdAfz&_5 z55ynCfR948j@*drW-65aF3Mv8Q%33wxyz4QVf4P(R99Cw>@8ErTirmryq!VBCZ+k? zAH7|HV*ak9?h5NVkGlG{uG!HMYok!0(+FB_;R4A+MpMuDa_=iXdR$)GRhoW-R9U6K z4OzrxP_nKQnj&>?>M;@ij!6`R<(bg@(4PdlcI4PrLN9_=N z&5F8LGtAgnwnNwzJ2lgHKH0Zspmzx5*SaY->HdMOt+4L|wxxw%TqCY-$nyMcjas(W zwKr;6Y1%Q~c=|U>=-4W1<IaOwRCLUfOICI2<)+|HLh`Qo({A=K^(|>@Z z`!gI?Esz&|Om2#qHrS5Rz`SAGxSLb)jLg8bsWvK!W~IGj(rBfkUH@2EV9Xk=4*y|PSD9f|6N?Hfri6}??b{;qqg!uNLU)>3 zXy~->6p7e|)GT{vTX(@acB84#-+M%@td7eQ)tGg0xS~X@)qjRYEfjiniCB=Y>(%Zj z>n`iqxkR0<&ZES%qs~HIvjSZX&mu!7x&5? zI_zf6qIElDoA%bZ*jm?%)U!h0l?1v5lk7iDZHc~3Cn1&*mu2Rbg8nL^mh@kyquj~_ zDm=!rb&gzVV4Ww8S!mt;g|DVaVd%bW`w*E#`ykG{C|2K z*@nLU8N4eWTF|U=t)WF|cBHN4uh8D?h=-|dHKLXB9*xKL^hhd=dI9ve(z_PXmg}$? zq7|>TS)vt{W9rzRY|z~QZP>&NruwL_;3*UBV(P2ne_MmlBgC=Ap#}Uc3{9g&p_8(W z{P(W3XmDvkRgtHc4AM+Yy7^t>fIhAY#%v*z1;HFMnxm(XP;!5XoRY!bSsXLUol2W( zhE{}CP%Ej_Uc$^Y*i+1Jdjd-gnJf}^}1;? zJ-V>GvMR4=a9;kD!V*tzejY#d^i+->EE~uhjGx;(S7r-N<;f4;OnP?Tp}B#MXwZmU z*RXO=abZ=lv7Es29%?Lpq>CSeRC&gamwI#ar+A9OeL zFgV6^=e`IT`MHEFsc#iOjVd<3o{*)5Oy&o3%)+I=BYGxS)bteog#6HnkarMLdUEhL zfZl1UBOW+VliyGErRC13sPq&Qw&VW^Nku0Kv?Ze9YzGAHRX`z=OMn| z4|%i0pSpRA$-MUNGbF=*1v4jwx1P{(k2j^(g~6K`GU)ZqXX{Ku77=nSa0O$CLJIhY zwBDoBA9wAYxiE>x!t;Igdh*DFO z%WTLI7Nr9J5$9awe?Q)w>ya}r%JCOvt|)Jsz1u2yd^*?SJ6%x2Lkz zYaPxJUxi9xv;NUbM9yV30(VcopIS#P>_2ZJe#F9mKtu^HFx#&7LL+ahU^ud@tixlJ zC?}8in#A&gVJzMxvw!?2M=&KM)}+?KA9`^M`7LKia>&6Qk{aO|UT~3t=RRhuc#|>1 zN_ojp?(Kj=f2zx))nJ(_iVVxE%%9>|B6x_0G{<*H2kHn3oMCiZYCiQ~ejV%!LiH9i zn<~VG#AHP}RD-4chh{Lv99`Zihoiuj8G5LB=a5yhJ&kcXl)PmpGf>SbkbyD(4X-M# z%;SHP>I*UVWd^76y}x1imGUp$S1e?*(D#8EU%_0tdt$@N|GwhkiM30amW(PX8_y@=le784F5zccnXp>|?f?F2LH&}n>Q#5afEm-^C7{z&s>n@V4SzyzT; z-c(b>`%7_Ok-$X0{C=ENQzVz)o9FTQjr{!5sz7bwiB6?_$GEQ|??}GV<6TTJ&)hpl z$}>ZISMLIEOME{Cmo4e{d=i1idGozz8h7Y?C7`T~b?_dW4#`Cl%w{WTR<&P=`CY$v zF26VF7nBzgmdZ^lx0iXWs6WrNJW}4Y2=kcwaw_~an5ogl{@Z4Ms;M_TwK}Yv$Jbu( z*w3_FT1x=GZ{Y7+7ZcJSOqphz^4?AMuBa%STtadCNqpaBkS|M+>8nR>-8pqi3M&ga5(+}A;VWFzC~0;9OFV{> zg~wDXx6G4Ym}kBRR6vL7|2B}fMWd&9muLR3MngQ)22>Rm@O(A!7^&CP@#FjC3@0m$>2EPLf+mswvbRz{$S;1>k_-wT=K;b3)*PHO1kZVkMrn$C+r{>zO z9pU->mdAD>2`}NhMucbhuMOcj{!2o5PVFl|c!>yodU!!!Uml(j-gAeS@%5SE84)_> z@Pc7IZFmt|2O6I3?+C+lLOQ?j%wy_b!e^tK2v0n}u*4y?cR_Js$*{bNifN_g4%q|w z=wRg(2Bi}{;WdseE%EfpD>5(W!!vWt7r91w2pjh}=8w!Pr?0K6l)n!PuRri0GjJ0V zUPgko!cJz^rnuA$xty~ZP*g<98BN*UZmE>saQE4wgnatZg7 zh53=oaMdg*ofbKNP+>{c^oUC^V;_E`JEGKSe+|hicG!z@LlJz+;an)!Q(4KN!a37d zL*SfnE|txeD=d+bmWe^)C#0To=aRmah>$z9!g(&!e>vxv`sk%fDxI^X_cKG-636Xh z`sVOszh6m#b4JJ@(Yq@nmgF7Qu@~-7f91SDbFTN6&%ik6k1Tagm*@D-Sz*nJQr2lL zq7=9H8R6U2J6fu%lxeoP@PyBAo>7IT`mZ3)xpH6SoHd9~r}3#a=S+Jm1HFrL;n2P# zLWv6Jbl)wtbEbWK${p!zjm9tbk1rUZ$_S*LKM8&K!6q;3@E3>l|yzt(X#CHIEe?QvDx39ONmP z?36#c*gI$ouWwX&VR&MnqSA?u8C-g~9i_jn;EFP+baKRkz9PB2!sdjTQd$|Yr1uPW zUYhsmkYgSnZ}T{3(DuLuB{#3av5ih02%sp~=rgvZ#o<1mVqNgZ4 z+52?_bESz;V34QUX}*5trzqGV-Q7XK>S55?;LjWd#nYP9K{HpI3G$&*vu9`Yc6wNq>Fv zFvz=i!V3*8FXW5q4(Zi09Q5{n&e>)D&M`dO_gW)7qjycYI^LPVLUf2=WRp8f}@LjPd1&c_q#9QE5m7Ho`?GHA8FeZiks^R zSB&uDrssFg2@D{^XOefH`GK}_zRRapBUI!YL)TGCM$&ba2@I~n+vJNXkSl9=F2h~_ zQ~mJFK~)YLhCzGLL>}JdluRmhn8p8vBF9_?IK;KcDA0NKT&_6mBiqBD@P+uUPIMYo zJeQs!1N-n&G92L3v*9`N)-F6b@a8%^Yh!3=xQO;H$t#*+ZUVz+4?akA$}BMFRppGF0*B0@ z)t+*BnZR=&hiv;A2BU%;ie^`Nzf+u3!f{Yq;#8aOIFV7vB%UWa)WV77y~p$2y*m`~ zkIEgg?9KJ>5VQX|j(t6!!))^S#39{YU8GVbl+KI+BIVm_35@q66(5#Y#hn9pDt&mq z!KkQ@c|q*Bsq)J5CKeX)mcc2PvyF#M&Uw-?4=XJ#qL6t;Q|GEX6fpNu4#`8RiYI#b z0}*|>BXGzzqkUG-DTfEp5i>`dL4C-W#bJKmkl7!i=pC6ml*=KC(`?<+D&DDb738sp zLn*m|a7woaq;hBAP>A~hhg9FQ5QiN0LM5N;_7p@e;vG;I&Xg-xJ@D8iuKNlRbxb8_ulvm`CnJpt&hm1j`c?G`b#O3A{m5DL+4m`~9 z>o9}7oAnMA1~5*UmN(;=W(!?TPRT@GMi&gpBZ|Xu897AAIxISHYCGiRR+X90&{quR zKrZBUWVEsoIt+(e?Ir#FU9`G`Lr90}{9`PKtiT}4A+L6~ZW|mql+P)vt3=4S#9{ux z`uWDY4n<7Ji+K;~ki~^AaFKDy9+p?mO&E`J9rCix8Bxv^(;?6Melq;h%*j2OuFzo) z=bh(J&=)afx_UmaSLsl~d%Nb8QIc0?ZmS)#`tn5CA=!U*HGx0jYvb*|!_yfV_@DAP z&Bo=itSE0rq`5;L9QuQUA{F(H=(z`VXdIimpenyIymhrUV0Z!V3#IUM-inrZ94ho~ z@9^@23X2OJiu0z{Ayp3J0#AW+uJ4Jax$uQAXK>#1Q6*F4{n`xQu%^I21|$@NhmX!P z$ynl83I=MgvoIUodz(9Yuna508|%9f4A1bs{tZtzLkkW=j(5lPFlVo01{VefL!}Ip zNAbddGIF9j79CMgHgXC>74ve)VN>-r!ARi^>(5gbPhdkwC^U@aGTQWSxCo`ZRhf~g zr@(vn#^{Haoe_%XR>_ZACh9s-rPECH`Kjj)EL_{wsWhhWa0yc*kGf=O%R& z4SB*6p=7SF7YpAbJUAo-Ee# z+Z3sk?=7A`+B;IQe*85Vb8be;H#bnhK`H%v_!^Q}M~VJ<#f3!w!2NS6+BhFb+Og%!FE+=ozU-j7i~W z3P$HhmOZ7+mT%?=2JA@jkV))Z3v*gS-{k9zBKR znjrm-u-k(2sKOXDP58J%{40EL0wyi(IwqgB=A-}BfCl&jaYL;LRjFLvxO7j1a zHQsxezrsT!rJiUuhs;+!*Ekkpo*AmP(YiJMck~OTA zBs;HGTC}w|rlPe9Re0a``WtQa(MbK zGybZ~qH87DTVmgt$5gadp%PpCn>51r(A?bB$Zt+UTN5d-_C+^RxeD)J1PrUY_WW`e z81isg8fFWzlWl5Gsa=UZH(vtf{VQYkQlPW&Cz|aYmgv02!-{$Qf926%nOTA@rcYXI zPpREvdv0-PM4)Ve&^Jl`<(Ni0rPr?8sZ42jP@#7@{un@M^U%PQS*MUUOrcG1NUq%i zhav@GQHicn+tTbIiPD@}Nwt?!D|?zPrcu@|G>lPdv?bK8&z8w6pg;tq_m~U@JxWy} zL6BS=0|Ajz)&yoqAu;*2#;KBMHn2lbq|D`%KH2=`M|%LJcaSKx$u%xeZ*DM-QtGQU z?T@i^6)>QbnW~F@{{;?q-*iQVJtd^ofg5EhYK~1`v+WtacH0yEqdl2J<}dSq(@>`5 z=!+1^DQgrd%+pm6X)aS`=og0Bw^M-?R#0Hw@4+NEZ0uyDv@KBfi zisA3QW$xflr(`nE`)hIkdjM-kkpi)Wndy^h=zvMj!{h8({h?r^Sbc*8)ojF>5S>#AoS22OUJi#-M z#Oy8dlt=`v8Gy=rJXuqJn5(QX@gl6fmN#Y_$6J~wHn5CN-DsQ$iCdGdP7|5|D_u|^GJD>cUGjt#mSX@|Q=+Gw6=%EtkENkhr-o-iJq04Ng!CB16fSxx{ z8~0`A5r3c!q0_P>y|);l$#N7rB!?&Eg;Z{9r2p|=pc%FhYgspYiYGJ#TMo#OAP93; z&~Mur`ZMT(#VS|ACNpa$|_YTqwBJ>Wh3m@Up4u7WFY z6=#E~a2zB>SGXIv!p$vS>oyFvEv`{8jHKfH^lgLI0q(w13mc*=z)t#*c6?mWg1hm%(Rcu zH`!@ThX#YcnM8yV9vQ@=<#;!lFP0kYkxZ3k&CXo=W5j^GJYp`fe33}&#*C&kn*vWK z=CG#1B<}O$3xnEcB<5BMlop#+AJ}Io5e5JL#(bz=9PNwI@z^kX_RUa~QcuY~e)=fj z?ssw8xluJa0D}a1q#JKc(n`mPK3cOlZC~H)-q%mdYVXl5oS^mCduKoRfcJ!k7`+~T z?8JM$^w@?zT&Q6>9t<@b{}U$3itKCr5TD-;3lpUHW2f7Wchf3+h`as>AzSNf#Hrc8 z8c*a6lc)JOG=AV1qxy&R9w2>)`Q#Z#6fc2{Qn(#8o~*WlhKc)6o;^XYRns1;5aYV2 zEZUbq+ZIAtL=6VtKGu6=09R+ibk6qHd%sURk3!70oOFR7rNrK%=Vm~ZP4D< zu*S9{XTlr(S_&%nfNu5DiWqtIo(jnIiz@+bvUP8<$iam)zD|(oL|%Sd1$l7cn<+pn z4tc2sWag6QFq}~iE#Nn7g76%H;0)ixqS=GWP!&BKI(kg(4Q+WtX%UE&UsIT+C2=(T znR0qgZq9_*MGp{3f(+0@zEikhPGwu4evJn8B)~LTAk*PdaslQY8|1RrN9Da6G(t)u zM=!^3=vQr2P08s}WpWz3Iy*<<026zaxOtrLCOyZ8c6g|JF4KPMRG*i^1(9gU+Bn!e zptIsL<7$^NL|oBtA34o?a)SL7Gxi;$B96!*h5_j|PBR26QY^0^1T^AEFu{Q{Z}65= z(WWy!prUt-f;04wCCaZB0mKCjV}bF2?V}^T@@^3bA`s8$PKOjUO~jY8QK)_M2>IO2 zN9KJbkkA`CNaerGhj~>9n7w9P1}+&y|K%gll}}52VF~q^l49>Dp}?|1I#m5yaVN= z8O53HD8`z9hToh*E&&ZI?T*{L&EacJo zGbicrTQR(=9NP#v;H@zfBv)K|Lzkx@+7@Ac#JJ7Sf%g* z@4TUMchhH4W>HO-=uI{dMj$nRVhYYAkKQf4zT-#rmWm#@TM~2mp&%5jVq*n;q3}fD zZdy(RZ_x$_d1DUMnDD~BMF-}h7{^BxJUN<9+TIe#6O-T|y=;0Su)DBOqL`M6VVG|L_$3@b(FsP@fVZ@+&)}*fN8YEFQv>=rA3n z6G9^(k|RVoM|kJQjBa}5X2WGSL$E3+@-kZ=d@8jg!B6nHuv1{YTISQ+xq8y7S%lJK zEL@?AP?cX;N+#5cJ3fV;fBPxQg!&2WAO@VGI!iNKXc#IB?)ABzUJ~N^N z;dF|9xDkPQg5#b)MAFnV09PwX+-y`X@ zQl#btil}fCNWw@*o_a^uC?l;k5gK);T~&+_=nbO@)!9H9ZzM&sCJ%&goE_+Rhh9h^ zTL}wmuX&bXuh|5I?|r~xs9R2DmN2uR8LTOc3rK+bdj)Qt4tbi^-9VE zi)G&{7W?MzPPr?lqP+-7?;;~lxwO7AdAL0Pm1PtYfj;tHY7Rb9k|(Vy|2{LyTAiYM z)%?t!eLV+-xf@=%U{@J*p8lA2!1Fo0^llr?E_n^ps)ZZ0$Q$0Bl2C$j(^Iy$-ypRQ zSER}WzY`7;}$fMc>2Q@IkFx{W$i1FRf#;wujFnurA4Oa?xTN zMYnD&Xupc0JpfaisD}tB#-}Bix8RF|S9?#L?RF1pf_s0iaI&DD8)PM@nto7nWbS%Ac@8E`uVU1A7 z5=g}nOcfR-KOH6Y0zL{I@IoGHGplGSLOXlLC2+$f3;`64y5zKVII z^jUNtf9-`=a^yvXSI!>qW#T>mp#R->-!nH{49%eL5miDzLkaqy~2fE6QJ1 z1r?tf0RmjmyYZ*Z>krsDY@%rInVIvHHjy7_eL(i@ZIRP-n1j708NU67 zeH%4tZ}M-SKGH`{*d$>E&Fn3G|Aa zx}@#@^ecUuY<7IX8n!0XR*RSn< zIn2?nZ{BQGDR1n4p(UhyOluFNx#arsnZuhst6 z*jq^NyrEN3nLf-#D)5kxygSYjIo}0&qS$->88B#;-bR5;9>67Aq0#9sAkg>6-G>fD zNOpkfuN$-M3qBD`i4-o1AG^qGDvQPC;_t$GtP@m>iH zS5mL&RL&baPXT_mRERT18>K(QOW!gx&D#kLG5 zkvf!P<~XW$f!KaIBa7>@F(L%H#Wti7>4bL_&)|7bl1%Nwm>i#bj5^6>yfg8fB&i;gfG+e-#*zN>A)2D9vvU%3#;tRdtuIQ!6_+_f2ON}3>q|a& z2R!jUJbTm*3h@BjQ)cPW5z=GVFc;WzXYvRq;jP(Rko4Lzg-g62f)4qiSM2C(e%;{~ zgro>mkyCtSb8_v`7c->u;wbg~Nt}E_Md5THyCI4~^tb8rlxHMDqKMG$J2yy&*(+^s z{q@9zzD?4eGm(wfqLBOmU8v>i4{?vF+8S0SgoO`OIsDaU;gCa{* zb^wyn#SqSI_J+_pCGYb(D$7t(M42SBBP5#Rx6V@Q$kh#t4BLSsK%n!S6j)z%hu?(XoAFBTPB^fNT^ zZhrUO{+{C$!pqlS-R7)aJWDq%A#q60vtSHn+_}Nsoptjj_@TB?^w{5dO6`?6gFO#Y z3@ykZ8l|Jc(0}^gL|iiC)(Nyk=Q6n^4D-od8i@kH}`)Qba2$PBg7BXPnU+O@eW{K6WhOoHDfjZZy5CACZQU zx~5anP}|xlY0ZMx(J?;DpR$IUHTRK&)ncuSrt6kP)5s-Yf#8+hC&HN~&0$}BLEqCn z)B|3LroP;)$-TQ*B1yD!L)AnjtJ_!jhC38T!=Yhv#UqC|S)2)8lie03IP#zP(RZcD z@_r1ugU1KVm2vk{unTi#NT^$`w*2vO;AOSsvIo8Bv8;j6Np;OR*2Fk_^~Bm?uM<=J z1~|Twi}8uAobD-8as`nW9g>M`V4Iw(re?_muj?<1CTM)TSr|}vYkPp5>f)qAiO{J$ z^cE67tCukyK82S-t?!Sxv%V#YGp;Ih$yC-Zv&K%F18I#QEZ06=ky69EUh_2OOmHCV zel%L$^1xQN2O?uRIFQ_SI`vrRN*=k<%!vaw!1}SbyrN4^uD3=Tv`Rg{UlrMv#S z8=)tF2%G+3#Ni(wu0rqXT!kjCns*nIS6un=6&y$yR)IS$h!#3@L8t5{0@3Q|BAXYv zib~#vgl0VtFf3Icwz6DLSM5Rqa_**nZ4H*;%Ofqk%{fVWPqQ7 zMM4SlkV=~DRL-GfVZ>TFq=#ZIS__q8>{BgcW$cNoL9e^wj`EIM72Bx~VC7FzI=3w4 zx(8ZPu)6if6s^JapQZ1ExdU6Hi#7bJ?7?IGYLcO7UE>ti7Zw$HU`{gz^QcUCRJUv| z)h)Lf6D*t)iw3J(Ot&P331$Buh|Hzg79D<#U6za0x2c08*mV!RrD-;vWupXlLz8Mj zA%A~LZ)75(_2p^piL@|k9E3^#)kC3_C)rYBcumu>ev@v`phXeRut>wod|n%^!wI#> zBv)!23UHKFoVk^aXi0@>`d4*@*2B*C{ zU$QhT=}U;FPQAQlAn1%fA{TX2m`2-$&7rwGJ63m`L#=%Jr{*Ge`P38P(F&1#$?MCO zgEJy1vnv1slT`-V>28K9c30sR58jXBk_HFO6#0D+T15-ox`@1bNN;`Gb(>=bIYW=w zkM>LX@){xDS!fpGS#~mpgaxpMgOAb3wb0QU4DOg?qxtS^-wruM8Qnl-C7qjW>q$(b zvJ>%W8>}&~^|3S2yhqbD&(Sn4n+Az@8Z(%Tfi#4CD$Z(lx*~_YHrrhx2ARwt*<6M% zi+YQ4bUer(l3zAN;aVDXW4~FC(-gb7at?89sb+Cb+%_L5U=ohvJZSL3Pl2d7IUyP> z`3OHB3e!WywMP_4gXBG0xt5ShT4%1Aud+uKW-bs3Cr?Z%)_{Bnk(DS!)+*Y5I6WPmqwpp zb~_r$McXsPBi30W4L(m))PQRvLu21$40R(0lF9L@IIDf$Rqn5{CFXv>Tx9OaiWq@PR(Dhl9k>;=~?Cy5IIw#^2zdsf0!65r{5xnwiO zHwTZre@yLrqnA+m10U+y0TTwVAEPfN({n!=nr50tLD0!=d(9pWOeQ`2$F@J-l}B6p z!P{MlLSu*BfwXZDdkWtsCSLhCTy>_S3~14rp1#q!8kQB>`N}X$Lrz0SjpovG=r}7q zAfA~14cZFCuhZFAINfz*->btp6n8hcASt=CePvU_$H495CoUbG^x;|QA^J<=wIP4N zE1FblROiiPhg0mdgRjq&r409=@xyOaX$L6)9@ie=hd^Eu^W*_OtqXD1LSrW29%*Fz zn3qQK^zQwt?L==C66^}`(vO?HWROGX)a68uyF6cuJRl3&Pko2C2Ok@NgxzuZ=-Tj( zRtD&pGde~eR3<7o&95pOn0q4uJ}L)wXiC-{nuV);;T=uM4UTsnP?=dWc;#cT6yBYX z_qhp&HnJVyBlkro!#j7yRC3}yNX#XpCg4NzQWayz z`70mWv9C%^PWeENsf^Gwd;UHUG%y0u<4|?zf6ym9ao$%>b&J$+!3a$iV;gbk^&mIH zgv5DFg^%Dl3+q4}?T*ozD&m=`5Fh+73UF5WvH)r`m+v3pZw&-A_p^q`?q{}cqMJ^& zKgEse6Lq0oG5nDM(FAi%Z=(U@I>bdEvmYY>T@<_fK#t}hXN51WnNJ*)F_G`Q;p~yC z{}ey9|K{0a#PaKL`z(Xt-Tw!4V1i}A?n1Hx$Ce~oK9Idh;L?7H0VM8*3c*%bkk~!5AaOT7TV-HpXU*1H zx5t*Y+w;ppZ=K$MqR*EXg>t-Q&*-(t%V9=d?mh^DCyxfb!SUc&a5Cr*f~VdKjs$1u z?pwiWLW8G|(%)l2w@E)vsdU^y5PZFdsA(mIuK#}UJpFfqQclvp4~X)Fq25LJe;Axa z3A=)$!6`}!p5U6Eqw)_1n;v_Uu#-d`)VxiB=_ zh}YwkGkD@vD*Y_sBd<8*F0@$rRy)YcPp zN3U7YJ-3GC&N2@kJxEAT5PaqLg8!7T=ZKGQyQ?O;|9bE){eC<6)nG@k>4}3Ru_Kh9 zdgZa!;8l|SLDGj;i9fCny|wMP=p(81 zIU4*HrI0p~Zpl?E)!9$~bW1wuo)!R!A8tRDw?AybKH~Uy1L6ML!LJ34)S_L~j&BFw zaBYjyd`()I`jg)y@^1vcNg00C5q~@Qnuki}DEiC6-r&n5rmqBtg5L{%g?@jP{x#CS zuTj-sbEQe{L&WszIlde04qga$;`hbid)xufyh@E_wP&%uMM}z@%mX4&DS|kmJ-LrW zdX(r{T*1Q-{xhr$++{ojIqe;E&UZ)!J4qe5j$;829i|FuUZbmzG_sAUjuTx!b(Evq z%8ESTV^1F>{&+x3El23OmnecKrEA$}^ir)_84UK-S19EasS*zWR{ta5ht>BWI-lvt z;B4bz&x7IPpxsD@2EPzyqp{uGl~ZPuMGx{nl_`@IdAI zgQvt8b(1WQQjVaeoyt2(^*e2NR+qew>NrFEv0*@~pRr~jmh$!0^6d;7oB@gD+`5mr z5fdPM9Hl;H>7FET zR+|3U?@~Hk0GT5$jeC=gknLlt>v^tuAb5p-`>6yvUyO2SeeZxIStnswe_iOmMRzP? z=C_}&KE7MN*URPm7IFLmamEgcWqz0XpM9I!#14ox_JcqqAf}ddY^!b?>!e^Y9ewIG zs!zrjXvoBd(qn@wuHytzu|BfA+3f{Sx6m&)W z_6M%_Srb1%{{&xQt3j{fkt9RZFOl^7F_z5xlp~-K!+m+u$RK!PKi#q8W{vmd6FkK| z^&$OZ7f#miF{{x*O$Twuz0PIAQEh#Pda~Phs=KAdJYLu~*l`oLG|o|fiLI@Se#u3L z2s++iP;e~iW(JL2z9FvXUWHI!w|_KvN2 zK>mX5&=GJNY<-RLFb@a72M24xlYHF=`O?UHj9bvhIjNUek0c~vy0_?#gOW4USHUv} zQ7X%V`?;GOay!ZCAnBh3JRG8&rIH;^8p}3-$2!&XW#*lOIF=HR+}FVwhiXxX z)`YFfamq_mCY0gmw)KGr34*x4SWknOc+4}myQo(#P!X3S^s(DOmCDM&wd zrVLAGD6;-8HK9Di-y@3hqLlpQ)2#@(6jrBGP$xEWEW+mz46xA&<82nEm?{|>&r`Ft z$&YrDaIiW}$VKqg@2=7sMfYppy-U4{_LuJ_!Qe~Mz0XlgbO-+?$-ap~wM`FwgSzTh zD8BBX?&}PK=LSeIPLPD2Bh?L6>pAfL2h>|KaGoQT=?*qg=@PQ>kbDk`!ft^bDG$I+ z-{9IgJmF|LRHEmD-=`YbIsOK@YBn@H&^Y4nr+}8F|2~!05^Q?cH)fop0i5v6hfOfM zj|R%kIGY~sFRqPIF*i(khVG71ecbyE!Bf35RlI zQ0Ols!DH=IBeyC@{Z+Yv^NTR7g0I+y#$zr!1tlw(e&!ch2y7kKYFnNsy$@&SBpPMv z*~qh7B~zdJFYZrZKaUxW&VzWkus>&i_&f&VY82FjuknCgjmDb6ApNELYgTz5vR*!B zwPvkFIIJ6M70>s`rvF^jU$ukp6$(e*rtV4(WrEbd{k(}ipqW0MBTiaOCv(CLu}kCi zjY#bCbV%o!_h;B)@wx*q3bBJ^QSYd|Csp&?! zABK^qF%2zb6eQwC6!_V8D7KL@UhSPV5F|DdW&)b}SD!Tv=Glx5PHlt8R;JST*N~sb zu$N)sG0RS%l;4Ybz9h>GZ2R;=pIiR><#5pOgo$H1pE5}OfA`nSjW_hk!eaAn#T6>) z^H}8&>mq@l7E|z82Ntm@4E%B^C^pX@k)PxlnMa-acfZ)8;t6jzO{_US_8PwRI7LEY zT&-w>C)tehM4IyislWa#izaNI7`yP^HkZuZ)88el9~A@RJK#~QDC{IKNd4p&MI=Eg zdw)&2S5p|uo9uB7KM&9o-r#9|=<^&sVfhaIlSe$i#?MLig=2X?l$6&3`w@19lhL-PvJNCu-5~WJ|8^Q2ZK9}S6y?3y2cd)1(5BR*Y$uA$*?+$-n2s><`b zaDj)!=uJVtj%bsnp#SJ^M_GAYmzRM8S~6fYgi$t< zP5t=(1aYq_yLLas7F9xRQtL19%#@#t^E!q+|F`BQc#NNH;rZ)R{$q$BecN10^-;Iw(-Lxj(3g(-z1@P^h3{;v5}4+ z(7Xf0b}fyL^h*!K7#AZigxHahr02ntJXY+u3ckd5JWb*WP&jg2dityPC*;3fKgv%> zc#P$L6@74VuhK zN!Op??W^w-Li=Ip@xO_@)8D?o&RKtV7Pp=v&Nyy0ZY`ERTo`zs?7S6>lpNl3Nmf)m zD(rRAsNnRN^?&NSs&ujTVHuxWH~Z-eKiFoSRwv)B-}ARBGfg4BQWcU@GcNmcpDuHH*Z%DR;wwMTZB-tPj*`g^nF z#&FNan?wGB9vLL!&vKx^n?ZT)mN$a4qqqJq_%f&RrtR{9Ly-Qh`|J0=yHQzGEMfE& zO|b&IThz9?D5;xh!{2HhLKL*k@a~;Lbm=cY=$5;6OR!a*F!Dxb4sWsdF8v!11g8bZ zk5j@o0{D@C_&x!T2-!Vsgr_zKyh=i~JB)(|LJh4d8;QFKmF=+;p4yglkn~j6p7@P7 zzcYgL^A9vvYc6m7etQ+|4bo3O5LhU%;7ei+`4Kc*LaTx9mAqfv^_QqWUz?}rwVOmi zrT)$5N3VjX>`ZVU+(eN2;r%uKUPI^A*4N_w8>FAUKQ@2S!dAPQ6ns^zK-|By;n9!0 zR7H#754?@<(%IYi4ml#QuknjA9BA4%0`>Mu{eE3=Oy0ZXz4UL>Kc2YBf}p%V7Vfm? z_blI|V1hT?MBg_oS31Al*h}jhLHf*t5fFO6=S{b)v(R_1RSDeYy)W=|FY1#I(Cdt} zbn&Hd7Zh(q=Z*~@@6t>B80}6H($i5tZr)w}nlD`Y5?8bcrcRmNMbQt zaRpxp#mFa=e23Cb(^hAGQt}ymwMXyx{`n#fd8|`@v5lvN{8FI^NEX|JXF}nzCy;0p z=M1EueV}t%=OiApv*Tb}D7bLW{270x@YB~frB7;@vZnD6W>!v_0)B@OJ~kpO#>aOMf62Zq4yQ@uY!z}o7q=A}=rY_BrFA3z&KL>dvwhZrAF=tf z>Leiq&m4#>fxKg9=%4ME-G5#|tg=+GjfV`cCh^;Zy(AudX5#ZUSUyM+Lh66}#kCkg z>Ie7NxO=tjtE+C1`VaTV)@RL1%R419>c~E;T?M>LpAUEDMf-f-kGNLRe9pq5#5J4y zJ;Lp?W^KZi6|>Fj^JZ0~!`%8u>fe99yp39=_`In;_q@NBu=VrR_iLK*dwVD1?__`O zCecanatDubtbuRiJy-5?F#9NWiGA87_|NYw{i}2Tee0Y5ZU1vUfACL#++M&zZ!7>pxO~apHR?RiZikLJvkX|Eac9h{Y z7;B6amTL(M%eAP&axExqrz?ypZDB@$J0B$_d$u<9zdYWsc~fobulVw@VDskM)KBRD zCs;S2PG1Zv9%uF2R`ao_>ec|)n;&7dO}`|6zAk@$Q~vCeKl}MlZTbxo;kW7UH=m$e zD)VQ2{Wz;)uvH}fLl>on<))Y8%k-nlwK+ANb5*U>!?w> zB2BFlWs#dFjkd@g6Mxbv1zBQrvD|=@PG-&yl4dhVn(feN2J2m5Jx!@B5YwtIBpuSw zp+~u_n$-VICWwA3x%$I3sek)09c)FvY(oySbxQpWIP2D&A+;N2_UJNuP)e`O-;11m zv7CLt`(t=Nx@16bwsR?^11VHG0FpsP0(cN`Dhj6n=NxRtbq<|Yu(0XSR8%pg#sY{- zQDRhELirOmtv0n1GMrig$plEwITFLdIlz++PD^EzfTyDH6yRwGn?j}mpLejS@;u-f z2OH`cG~|MXZL7iM1*FX;rp;=lOBtn0S*1%s3odd_>Mx^o(wK`#x@3}2&m}-}8kz%i z8Ia-hGV6ymvQYn&9ylp);H02TS2(|IQkA|zy;neVHHKg1%FTdEtw`HaE2eF!6|i;< ztZ^#0(a883lI8&!uIB+=2V}bQI-naGx&dfGXIucZ2*?z_2w?J}RkpR98c*Vh{eJg2YyudrvxQi0kfjc3^@(ZqEO2XCXN;21 z7)40WaB5*Y=Oj5AB^UM(Tof8i66!(NP}l)TWLMaM0va_{Blnx9PFNThS+Nf^%0X zbC`xXEVO~7U6FvrcEBA`xC3x!6z*hJZD*NLo3^7ijZs_Z;!MPW=`5+e3vE1Pl2G#@ zK!-JS7*Mx{x;c<7^f1H`xCC@fejuA}LV-QZv+Y+7jhn)tF5N`E<|0IdJcV8<)KH=V zT%)jFsBB+YFL!sQ*QvcIL#7wReIV|S5+kjjyUcPWg(z*y^lEL(z;71@q##S|RL|5l z03{gIM5qa_xRA13)Ml1LyOUW43EXlar$_+j(A$M5TmW1O;YLuG(Ao(L8%ZojMI$v% zfcRXL7zM!<7bb0*vG4`B;=+`J&6t2IE=-58Q~+08I3I=KiVHI#EWFR4Nf#U}R=;oo z@T`MPm9t>}qJ?cs!Td#}T}n*5q=rdmS!`Nnxl$%lnPq7C9OtAyl3`-{2QImA*(9N! z%b>oZp(}u{3MB2i8q>06t!2xemMuepu5o_bq$+)bdar?KK8C~D7OtamBRx3V!VN%1 zayP)@fe+J*xzakwIe!zmAw&WPcw z&8m<*i!hH8IjboWt@_y}qSLJcz?>5q6DOxtvxJRV&ze9pYXi+}ic^Q{m=h{p^wn@s z=ZOQAS#jXTi34|NX}xKwAr^7q25i=YXuBo?zMV(ta6>4LfzY^R2SCyQk{yZ!@D9L@ z4i*g^ZUns3!KRR%fSaN)JjQTy6mAA}i-S$sEn1!fGXApz)R(-Fk{y6N_i!e_O6AlLYqn0%`?hif;wfrm5NhwQHyyP=|&(0CnoJI?;kIhOokwom6t21P5KvoI{p` z1{`kL^HJH1|?zwJ>0K}fWylV55#cz>fyl{K8WU~1h)n$b4|;X zFL;9##ab!g#z_HpkV45YY>1&82uGyE zlIoDmRpZ~TnhwcaMTbmq5yYzTZ^GsTN?~w`S@`76V`A5n zrj3X$hOg*K5M2yk1!P!3bTND_mirov$GqU*qTWU@GCU9XdKA76_(lj{2|GD+1r59b zl7)~&3S0oZ7=;l&4BuqfR*mpscu7MDAB^?LTrtXe#q>!=TDvS6C>3Q1GlGX&QXg|M9|qhVg}VXwMByI5y-~Oqa9r#GGUUy-vp@70WzI-4$!2g zLI^W5rKzSsHLam(hHMx#XPnDirHLvrbsRY_#ZoHxlaYQt<~H<#SJqqb%3{H5WQOxw zNmuC`G)sss#PAETnwGSKTJjv!5)+TiszQi3tX4V-Ud)AX?8TaNiA`RKO(^lADujr` z5~X|LYDX?HZVd`t?Z}*lM4Xp31YbFFMMLl&BUd$q=x5}bhOVJ6=QT7B=(>h5i?)8M z%lN4-)4iE4WVj(2C>7j`DY=291wcj<7XU442+nfkrethHFTz=lENKYNa%5RUaDyYa zGz2#|a$7^UQR9k+Rsh}6&>e<~fr5$wpb8CD0HT(=9x7G>LT8#zD^_u57ps}dDk`_C zSPi@`hGVW;tXDWRtcV$Bal68yC&le-jfxF|JI`8#Pb%(+!thDO#wZM*RNU#{Ttnyy zat+`Y{;AmHNW@GO;h&1l4mQ;APsNrHrbSLjfH=$v<1K9WihC?9!pSulN!iJUDGwg3 zxYrU};lhIzTca?%R0AQ_=oII-QmN865YZGWn?@z36Q=>4*U))D zGa8x!bU{NG0L^M>7SKfv!7mgqX$XFyIH#dGWV{T>$o4XzE1K#GpsO0X3h0`K;1`PX z8kz^ybq&EU6mMwg1|+z^kd+{Ww!jZdii?8tK&R&!vPq@52y1pzl0x_<;3b=*Hd_eI zNw$DOmq4-{lJqH(K9DSf&+N>_7=#r_>OI8$i7y3hw~i7=;@F?~KCmG^M5xUI@jPSpdWEI;Cbu zl0^rX;B`tZA&mYgwV<9oQ5Zg@wAaC=5B7q(H43)^Zi~WgfZL-md`hV!3d5(AI-@Xr zN~tRf!>5!EMPc}q(%}#mnPAzn)NNs_4UiX>ElWL#X+1oajWx{{OuSwo9mFayOnIr7 zbJD0Y@j6CasaI$0Ga37A#y(Ch^+`rbMFG-HNU}9{n~dEyV>dGPO9o0sM(N0YBn@b2 z0MH;H(}8eXrIe)F|T=&aG6?#fwBr8iLy@O=xH$>T0sx z%GG4MwX4Z?GjZu0=eONfrEk!O=RhGYcZo%z}|dK&(#bXi02 zU!^Nj7G?$|_^;Ac4P8ae*E9tGRhrij{8#C^hTy+SH#BquWi4n(8n&pRMNr)oNZN?4 zIHe_qY=5E)F_kPW$8dhS`Z4XT+)i7BH$V31CUf^N?ath?#iZ?U_>LzZ-Ap?upP{V- zE%g89N47jnJ35&VJ8fHdPb??%o>)WnNW()!u-z2Z;fm@Ai#lAJK5R-jZ1WuslP}b! zFPP*DHkkmhea)43%^=qua$S&2V3ABGP@4OCU8g>gUmQ&hW0gb zNtKl*Y0f3hIT>bd)Mjpo3^O;33^O;v1aKR(jV?o@LH0Ogk3rfT(&h@y4&d=0^TiJbp;6g^F!@StmKLOuOv}}h zOaSV<<;uGiX1GwBHL8@gs+7F|BX&zh21PhSm7&ics>I+yXjZx%lBl)fp*fHsOe?K~ zB$9Il;msWjgV&)-e{+th81UM!P^Z1j{!{#c&2nmA}X+Wx_L1nSiQTZo-6VR=Amncz_c(2~0U! z&E+}D@EV0xM+(a?g@xsL(aY{k$|Kkwt#gGjr7g^er;duGR}@fdy(DtKwy1t>L9K`| zN4F~yz=$wM8=^2G%+VbojGiZeTi0k|vARPornz=8VMuCh1o6%&F{(xIIof2?YICa+goSz%Ix=Np!$fofX^Nf#@pP0J98aVC z^EQn*1AHFvOb81%*l0d_!NRs$WWi(W(b>c_9dizm>xRX(^M;{r2>2rBr23883Lh7d zbV-tghf9Fw3^l5bJ+`JIm5zEL`;e&LW#JP#OvGVFO1+oSkym0k;?~itx^l#=qt^ry z7Ox@qd@T1o@ar-BI;4F=a8i%F@}YTg7dJq%ph(d21;C3@coFbT2b)oG6N<28Vd=hn zWpxxl(Mup+PE1=y`L}GE9f)xBqqiMws)chOU2(8!(h3T>6NT?EJQg@u3Kvwm$CXhZiK3c9>p0_B zy-8vLj@1L&uA%LK8UPtiu~=#209Hq;CDh$~rM9p6N>-q;9h~2Gp3+^z$_@}UY9jE{ zh{|`OawEN+fSNQvO@NvKnF5;uwP>gX&>o#}51_q(O!0dGwQ8zXFxSSAZ2_2T1Ku9P z;S9$*1a}?T8tuJS6w-m7?Tiv5t&=P8TWeh7mW8Id7B=Ixq_&(h#0N@-;Kw~{oVx(!GnKvsrdApL6hZh{{<(yQy z(O2OhwsVb$joP7RCl1`9rG3JIuxiB-ve^fseoX`x`yq}2%YJRXCydMTJs=qX$)F=K zLt_wd%E5*@1vnRlbASsDHiZ;e2knUN5!aLNsgy;sJmfc4;!MPtk&rM|g7Quv$&@t# z=$xSj>*oMXYG@MBl+HK>-liGC>TrHg$zTu#VME#2c}rqcBD&W$kBzxR#&%#PN{oWw zqsJ~Jrol&#%_gSJGTT;AgGNw;R#1qG#x8Qs+B~JoUsQO}8(FLn?wu~&c&e0wmRu4J zph`pxvB(Wdyab}T7!E%_b~%Q_TaR6d;a4E`tAc-v7%M2T7f{tzkX&;lrl+p~o_BCw zsOJG+cd(&`{~o&$h2gWu7952a2^?Ft#57w)`S9vvx1un-`q=F#46i=65{2Q_$L>U7c=hoh0*}M1k5@QYTY2YfruBjHT23!{{qz-U>6s`xnJqm9J+z^Eu0Pl#xI{-IE z;YRMb@tqd7z05)vKHap&@A^7p}en4h~^rQFzO*H^$P(!fV<0%bc zHanivP!1Uj8WQ~}X$bysd_qI;hvVlo1b;X_si8^q%oIbm`_MB}z^7yQH1P8Z7rCFu z;F=LU9Q`wZFGS%BfM=udEZ~b#_#)s-4$jXjQ#}uMFM(t(Bw17>iy)c9c)e^%Ol#+> zqX396qr59N&8iZ7*7(&Z3_mq~EegX=jn7A6_^I*hQ5b$|{6-XppBi6?!V6$NQjkXuF2C18UGv1E3um+5xCh zLydrTYG@~*CJi;QJSLhMvhqNynt5S9BTj@rCh zEz4tlW@0Z$T0;`G0XpA>dRsx#=17dJ+5opZ*ig3v?r^Z7?f~2wg*yRvMd2kiXG;dG2?faWw5TOTD})EZNlXR5HQF>#smTZvWa8z?AdToYGf z_!acTRl!50y$YVLF>Dp~8lZU%iIu*tq3fW!p`jaq762IqT>!KwkVsSv_f4JgCa9J) zv;=5bL(70}Y3LT9+ZuvXnpn}$3aIXA=nk92?*|N7QL^;D9{{h2;T5D5^uRZ_Y#+Yn zmIWEAv&c}LLAE<&yFuJT;h{YSX>~NM?ji0_PwfydgHY!T(J~00`ZB;359M5joIx%) zgr59@=AuI`QZYl<@C3hhXx=@^A98yLhOV1D?jiV)c?dq_o-YsGGBkHwxpxG~yC&vM z6Z38>MLyh0F|@OGXs2n=PTL>?nAv=bEi~WaB#`gHQV&aj7lI&xd{3BszBYee%FCa( z$poOhE3UjNVTMv|zGO0#Y=%mhDtQ`e8!p*t*SIXlKe6+Hit{#D21+BB0GBvdD;B>p;3OZ5hdz7C@A4kk%_DEN@WZG-vTw@r_6DX8yJs(E{D>M!ZIs@n7qnAI)xSE~OL)GNP#`ba>s{h?v( zhjcg^ooH2?`ccghq9qA#CR&o^<4v14^VxaTU))sr_+}RFCjnK#;``B-2HKB90Uyhj z@=+(^=JAG2knq-Eb0sc_K+dcCW0EUF=$9uSr>!G$8J78dYE8}AM|mgDH#f0V>Gu&7 zfG5ORpY(86wh@b&$$-IGaqv3c+Ryn zKKe){wZmv6MooDA18NyGmDJGeTfr@b9c1QA8sGe}y{R!n$fVJMkuhXDs?0Qkg#NhP zxHiRR8oes%#K^EpxiM8{8odhW_LBw=Nmtc;vZIAsX*!9kwU@T)@LsAn_r$_eY$jBe zYR875VL({1g(wLasOFPK$3U*dl}49dUfe4NaxF0i=uk?Z0Ra>PR7jM8TuaR-J5TU< zs*}2TaW37w5z5)*DQA;XPJWkB3~(2iea zl!Thpt=bMKOH>o1V#L}m$@fd1@e+)VXcaHD1_KZq+Fdc^&@Vk&VIxHzCU$s)VxU2A zIGK^|SZO_8w%+7yeaUb?tlM@O#wq*9iiD2#bONJm-@5U$S?7XrW35}tXE9at$pB1O z93O-+v(>xN@#&9MH#$P;KPK zs7-3c6CmAwGJ%PYkF#LU9cP0YQJYU+X~@7ky_xi6F{xxRX~i|=kxVI)DW&EcGa;Jx zc$rqbOeUY;41X9iBpA5`n_#4dRJTu}U6 zuq@AdB(sWSR(!`A%&Rv7(quR<#*j-fWX?l)d|Xyu6SZ3NfbW-w4BS z#~U$s)QF)~UQ8@ztS_E{D+O~#Q)f1S!$P1rECeBkg+RN~nb4Kec{a+G&KToR@D|Go zYO$tO1Zi;anSsbCPEglWGb5C+%dz0Z-*v3JzDH5)xRk(_4 z6RxKHaFvb~SEd;^)-?NJX?mrm&<4{S$J;SvZ1o#qx4a2;K~1O&9mcZSkc$pbmyoN_ z>FI2z(pfY2U4!7feqxby#gIcWhP6-SxWi-tvuPuwrY6$gr(@rh1ZZ1&$ckIX z=5yWMI(E9rEwHAW6tx;={1BnZsgr3K4YJ4zFP}$fCf0@~y29HOTVPE$)f9S9@~kLT zlFE51m+9RIvGsY1)2GD7uMKby3NOw{^11V&lg#v<;AN=@-|KJ2`#rY%72Exx$;|ZX z7O1|ICaI1RAZ{}0Sp67PbkQl3uxLa13IlO-#_-_tyvmw7$E?vI?)Hz18VRxrM9E&L zN$0=oG!<%Qmc3y}w*`KmfC`A=IfN{({*BNvZ%w11)-(#Vfmy_0LdDFoC!Iz~UF{i< z-#&6KB^gMNuTkFRjcDYAr;!s%BPaAgS`G&i9j&hh(y}$>=e&Z>se;aF;oQpvtS}i9 z*VOOB?pSp+l3L#o)?42wsP&D)v=xH4>`+k44u$ic{%*tr>VmhPQBdm{g&EDvhAhYw zyv2-yTFfZe#f-wNr$MtygJ#8A`-5Zst@TBZp^J*4i?+irc_fz<$t48cYq6BRa+3{= zEUpl8IYx8EN63O)RUQQP*_shDzB*P`mfBJzc#!3o2La+2l;A3e*=xzLzh*+K9|eES zghT8beygZ3f6atFL~PBZaMR1hB`;TeKNdV0md{f47Yj+Y3FcT3~7%c9Uj8v zbc)O_O5aazgbH?fGV4+@<99n)1t&4$Cavd~6blR>YPAGRdj9!a+%>9!=^n%=Nl(;My)*E4B) z%lQN9Ic0JueUm$>O)hS%$@S;O*~yyWUgdgh6bOO3s;nNk`Ye#(dZuEo2Z-l-rV@P2 zRLyX7?+=)$8SYP}jxIVG>OoP1ITjbO$*YUkqWZfYYLN2!IHmfS!T`mK3&S(loce-E zu?^sxz6iAuEayCybBbkpbB1jLzMDnAcFF3hOci|DuKQGB*jrQ^R*P!Gg>b5nxu&J8 zRTt9LstX{Zy1+cub%;}4AQ5F0s^OB%+^-t3x#~%Hu4cOS1}S|5OsA>%Fmu&+9an3H zCz9(m>tt6@Z+6!H3B$74u!`)gS3SOTWjDsjjkOW8UiI{mtYL8yvl4_!ZTA#}O^KFU zem6qPy(PF|wFEajZ9L$t^?kEqJHVaTj_mA4u;?uT4yz@=;q%INWM`f2;IEjeDg3Mi zj}fV^Z}8}?6b`GE!eO&gXtiV`1n8|44y%>I;R|B2{4QO8ljW^T4y$#^VcBH0mZ2IO zg#IQg4k$0hXy!tTD0Nspb|y&yKOhfjy(Fwd_`H_*> z^5gK;8+*4A+xJH5JWhdK)9ls5FVnT2UH@>yrY+AtWZcI{ zt0%}-CCFCe1-sw{>4*^)Uu~vKg4u|vTi0NAq|IZpO)=SK+tKckv@4Q!PqZ81wnsWV zW;zrz9eAfOCDNm1+1gyAc`b82&TX*5>Gb&NRQz7;Pc4cp*+au{#Bz9$Q#9P@LQ7d~RJ+`7=uasU@O0Om9^GNy>NuMR@ z_elB`Nxvl-@JI#}$$-q0eAl<`^Q4hMkD)=u(4gfx<&mTmNh;3s(grA3&SNO27@`;H zc!!`CV$%jN#F12nBQ_r5G~dA?#Gnc?jq7SC^S)%A;XqT9}fR z&MY1BWTynUHdBJ^oF9hs8J2dskj0G+!{@vTvU4>f=hYk-O}DX}t4aah9GGMO=o~n< zm7LlcD=1+iOVUW#Va`Ijp!i!-Gw`Kou?%?pEhX@`6q}<1@#g3WuL5P4=(EC#ktW4R zQopaDM3(8H6yW=jS+ukgVo0GXGZ)b21X*&Lqe{4+QBr}V#s_9 zxh}KTF3c1&T}~Vnoj6I*wWp%=^GjBxmy4Sh zn-7oNiqYJTAuBQDP82ByF{C1f#O8g)s)Qb&p$`xz!*vPpQcW?sDS=kqvrRQcvngRg zx~b9raR!B^+E#CAR!Y4U8aO%-wlf;*{{`Cyqjn6H5kNu14v462yf_DC%F2eO(gU8)Q%*~1| z+5s0^LI+$l2Yuih&-A5d%VU!~(}o1a^yeC)VqA}B+QmH{r+XBqd(s=q7Mu-9(em1UbFQFlduT zSc~SWQh*NH;F}`REphB>w%MZ5ZLT5il)0r-9&0R(=@@c8hRno}3o&FihQtEIVk|%` z&Uv|*!^dRo8@a0 zhh_V`0hXmV{8XBX&9i-8Ptt918P)cAwRKBv-KsXewzYNpwRP*-aASrueQQ}qeRNyI zISC24d1fW8y_aW3#TBnlyEmdw?|6NBNA;;WDIwc!d$Zf)Zh8Z_D+QXnQV?=i3XH~0 zqwA+Fk1=~zs_^=cEJ~?Tw_`&BsZy2Kjw;oTDtTH0r4e(U-H3iKc~9C(>PcIvx=Jh` zZ^X-XyEvCWK_14rq!sdVcd5>6TAgZIofuNnG4W8)JGh3w}KdHKiuj_RNA-;B4PU3`B2w zSyI!>l9^s+`|J?xlb~MApi|~`4eCqY{IaCxm!%e~r{2V_q$YNyJ(gszr#X9-=Ipg3 z-m|fidNx*SwIpp`DQ&70`(&!*J(()0CsU<%TZ;F*sHC13l{zemH#;k-*;&cX&Pv|w ztfXdVB|AGSd9$;Unw^ynX*J6%Y=oM5le3bVoRtonM~@3e%`z0G@yfk#IM;n{Q}X79 zB{erJIg9Ac4NGcnSTY;K3npd@?L)Q@+JJ1qvkzH1S}zP+aAQN0f@dGHg_=^YEYzl(r)KWleQsXvAccnCY)K@Xwmsg#lmr$rdkN*H`?3A142ewvOR*_nDK-Tx-H4SF@wrs{qEAEZN;tiZ8Bcm-L-2AB8>(C<^n9pt{huzD zZh0Q)mhwRK)eC-0V5pMgh@nbjONS~w7UwpA#oHc>w-t-G4U5?5HDot>(S?aOSG=4n zD(4E$>=Hp^;=Uom_9jpzHG!gQ7PjF8aWs9lgrrXKwLMmUs4~iPegmF|k9yOpQ8lfi zYsYh5c6c$*`6b13UN(phk@7&5oL!`*Ib%oHp5f+JJEJZ)#&8c+dgF_3M=RhNhUTOK z^|+a!un_-o^N@brEH}0S-^2{f)r`igta3*zNxMw1xweJ(*5uQC25t0@SQ_Hbn!5+D zpkY8*v4yAw1q0QLRyzjrOR5X}yp-e>o?jv%`wZllA`A$i7@$I;4CI$;M(Z$z$sHD< zx7a_H_u8QrS2tbzo!g>27dKY+Eq>>=)Qr}{^u+P)VuNh`>u-Zb8?+@EZ3r#NXoImq zE!IG`c*0qOV*1S{mD_=ERm3Ziz);Huw6W1^W20(gBMoV`PCU&Yk}qh`*Ocf|PxFWD z^l5abSI|yXkj#CJ;^b~aap;dz99+w&sm9?bMw zGy7Lxan^OZIqFR}N7Zz5)XB@6ZjP$y=I9-K897msmH#-`@Q_daijiH2Aj2nlhv4T zKDor}Vrb4opm~{;(H|Fn;o6wBygw<+>q(j17_*l5XGnBAdV|ec0=^(BYU|$sBe3Wx z*P>FcMKM!(yReb3)WTWIgwj_i>WrIW=+HdTl>7!P;fyYMZCp}qYCULl#mc~2q8U|7G^2O4 z@(yi)eH{yQe~blTe~bm1myL+U$0|HtDikjjMs#D99!aGlu^Kj3<&jh=k}6wDwMSB| zNU9Nfuf=S6x<+5xRy(Mj#Z-WpO$)>w1hEkby#>(@B3~J| z+syusWVq4enBv~CogTt%Xz~y)tT~3XcnIg(;~`w~UJqfK)?}vIlHqo-jTe+bYF&T( zKjuy3#?(Y^tV7$z*3dS#dbZI%sU7nkppK~rsAHWr00FB~Xz$ zbiPM)zQ-|FOHe3>9%3o{ns2^GEilTBl|zqb{PI0DV*^m&9$nkLgp6Z@GB_>28!$Li zp7NxW@}x{e++!Bi@;wrv`OK|rgf^D*xXUT-a#~Uw5`GmtUJ8nrfLX|M<-nq`3aJR6>tY_g zC6Y0n|1l}B+PpF?K^5XHTe6Pcf>9HA4zB5X`b~Ri0qio`!vWbJfO&ruV5jWN*`irjl!J4s)CJ=%QmH*^3ls%Kqfae?d zWM#cljS^zM!T;VLXcC-2s%Gp`GCY?IM^|5@^06yo+pmeZ3igj}N^QR2T0z&o)CyW^ zxUo_zcmp|Ks2RJ8K_k20b5h$qd6H{l5G=oufwmqBJMSs%yi(YCV-W1-erl(Bj9kn1 z>v{~i;Wc1t0~)a4HDEzCV8JwC3Y{}$E!vdCsgN;QGJ)` ziE(cwXuR}Q(U@it*$O5FdHi)3o^d~GMxQ@;DB=Zh+hZ>;;D z@+!zr)r_~R)gv_2`W2T;0WN5QRgVNsz`UTzAujp?5($HZYP=&E)~j2X2pV>Hcb!)( z10H|8=S~N8T+dvLKOlZV35-xrba|rVzBv>_4#$wlBX`Q>&*izC*fxam$hrsVN`I{6 zffzCvLt@(y#&a>6SZFjJn<9?;Q$*(3pCU3cnIJY|JbDFwzRYAWQs1ijax?)MUg zj?cszcp-+&#*mBR&ZOS_{0128OPF+ND*hf{lBv#Wy0i{+%JF4SILk^nvA}-(R!k*gf&F+auphr89(`Us z`n+>vwRyg_9(~^T==0j6daRKXny88))iIS&$ zejJzYs+nj-ZC$!;_Y!(cw26nd{I0)4m}vL9=n6xLE-#emGM;VXuvgGwRnTD>>ZWD% z+RcUx^=^-!ZpDv3{Md^2#5AKfhV;ddeyu(E4cK8jG2pdnK(%SWsK4CkK9v`UilNK%R~B)j!HyuPNCm;UAP64WOh0u0_Q8F-gNh*7MF0Kyor(Wz^FR9FlP`Yf?~niM;g+k< zUf=xBkNvZTXAl3*KlmqC{_(Ld7N-8iH|n@;mz58H`$v^;2B(6P!Lgw7 zZTdM9bTebb@+SUaek&fLpItrr&pieL+()ygM0wAsK!#8E#I7UrL5w zPKJLy8E#32zaG>lwQ@JLvrIx_OIw37aH0TOgG2$e2F*#8a@o7fCA?5B;l*+Z&B69~ zi@A<>gO7q2k`rH8E%C+G5}Q{`e90t!F_|IDQki7SRGDPUR+(hWSb~zjp4^$QlXMcP z6Fc*D>dZvymy$c?V7Wd%NYy5&Vry`aw5Uu%bMT)eiInTuT|ViB@<}h2PfFC;*NMAC zo#lkY_HaUCdpMzN9WMos?+;D{ePpOU4yyLiAGTOWgPx%FH8NSJDD43KI}&_AcCLyq z`v^QuRF$vNMIYtb!Y1$xA&iqnJP>ryKxnoXFDJ>kJ$ReA`lSx!I1wBV&Qi(m1_CGa z$?t-`t`)|%H|V9hjuKP-%oKyY^p9`A%Li0iFD&jO?L_#Up!yZMJ43Y`r8?LGM}XZ? z;DspgViZU;0{f`T${K-v)NQLI+ToO7TlNJlCTGG>{wR~o(pe?BdG+KLm)wwKpqO)8d?Eq!zA6E8ZwV6giG{PO*I~0&RvX#o+EI{L zIGeClbK7B3CbwlRvF&2LrTDT0mc6nBmcgbM<$+ml5 z2oiM3)?3ypy{3AuObMaME<^C^ZZsrLPb5HOLy<6sZDMnhXgKjDGBMn7W%6=z;?%K? z;DoMgE2jlaetB*!XAr;~WIxlSiB(Oyn}+KGuo{b>i=Ws<}iBxv0muwse9jU<(c zeBPkiUH~fzw$CPV-oF<&2vV>Zgu9S%w=zkB?Xi_ShZfwGh$X;82_61s@G6y&ARJEM zW|m2Mf%+&x=QtN9olY8UQkR&)7m|cy>%0pIS71pJgcI^$i4sP>=H1+xr9;Tm% z9;vOac%(M<6aM*2{`sFCd4zX6RLY;tM9@nAcF@00`qxGO2I$`*`qx4K`srUY{p+QF z-Sn@A{`Jwn7W#LX{S-|8`cQf0kU~CBD7MKa2E}t>>#b zsy{>7YBIRJ=!h?vGP7vqHD>cVWysv&tO4IX%lYZHCKK5D1Did=U74=nAFegm##gs& zYW5K4+RH!fl(jbf@a8RB_>M)A>9=H=oV!Z7t3G#C61{lbRzAQb4A{F#E~;SfCO8d0 zgx6$dEIwy1W*8=6)MjS+=Mw)oVPtN&N=XJa85UnAYz;NDhQ(ByMz)=nINi?)jg*jW z=ARZ*S#}TSKX30yHZ|Ej_KwJFvTd6md7N`}+M=>uoP{WB)8{#%j&Hfp3}2-O8Jl** z1AKeV-6A!|bXRS2A?QwmGEJ5&ja)s9RXS|KUS*NLo(pcJpB&eny~ICP9SKV=d)eOR zcDO6*>Dn~uOl_7Wmz}o>*>H4`g4Jek^3SrB#4VNt{nTci__G)2Hn*LB>TDr7r*ydr zPN?FaYW`tvbCvXyy~sZk{IkG6EBtfa7Ld9_x4CwEo9nPbYG?cq|FBeY1^y}V50{i< zf#jz6r=NeO`R5$}O!7}3|D>n|IoqD0>!#eH?e^l1t#gPu9~!i`dDkgJR77o_Qfr3l z_-8x+>|x?wPUy5HA+eQl=3}VJ;CXA-hAuMP$Uj~D!#oZ#w?o{PA#PQ^iLVB@0wS&% zy1=)6mZhN{TO?TE#^}{&C7V)Wl?mY_6dWdnH+`Idw1p+~gk?ZGOg)Oz^E6nt7*nd9ElIO5nW9 zae;GOw&K3RZKt2w{6$Am;@eC7bB%vy`RANX&8_h5ioMO>u`OGyBBytZHd@g`;Gz*=a%vsUPvr_bH>Ltx1hifxP93a8CR&`5?X}vt666RwZW| zO}0#9wW|-CyV6xehKIeh{Uco!NzJvW)Eqkd7?V9I^%zdLEd*y8HJoX*^`qdLFh^J~ z8cxadVV+2`AR-re%ADpfqK;~CPo~q&wg#3R>r}c~bC7Pfvf>NoF!fU>ub+~H&oVXF z!LP5Sn`<=>0-1bVcunfx>grO&4GoRjbjqtT#n7a!H^t5J8o|_I15&EQ6l+L&T9=ku zF$Lj*8z8kgmQ!(-F=V)@E2`}D3~{@M%b(HZr+F}@S*f8>Gcj(NI^-7qnVCQ#j)|E# z6EnK*6{>rXD#{%4>gMKV8*JU&QZ#TSqJilqqD$qdKrq6()MQJ?O;mHzP0?m#dbx;_ zZcC<@d9h8%^v0Ty>9v)RZe^CafOGVdS=Ma;p0S;jS&miA)J}dG_#Bd-6yhphj#nNl zDcivuOzGmX9l8nGj#w$#4%LJ#D`twL8}90?ub4k$#FdRZ7^;8Ixak-WxZRa{_z3 z9^hX%SQ$2u+}oG$~06Euys9L`6kKMMVWgK}AJHhp&SJDk_es zsJL&qpAz_bI*3~y9w^*kqGYQDu+;d zH0(!AHByE0L#W`0)p%JD+9Bueh#Q1P)`a3@QRpB)0q~p75~=ZwGRo?ZO;fJO2%MMM z@~H5INF$4~5KgPgkCaj<7BAS?K$Qvy<4KBGDl8DP#aFONCPTS`>Imtez997!I)o`D4-!~vj$qe)-M7u6t(kieBW9)6`x9YDx|UUOeg=&71V3D*5+afdxX~kwE(8)1uKef9<<%3}5u+rj8Vwj!BHX2~w2{v5Lnm@+ z^q>SflFN?`e$;|t6w#~*_(cGzFX|WxEzKeItfB|Sa2tM1G5r34)Eb9U45JIr!yy)H zAY*<+88BIbNIH38Q*AEAbs0W_P3Q2v!R^`aF_q_-wO0^`=LWbLStU~xnIOCo9&k0KiYlZqtE~ha zF0WIXuq8>g72t4@B^wj#L|Tng;FC`xS=dF+UA)(G>cl6^ok6iO+W?u*BCA7aW&<0uJ$FL6@l zX}Z#^R@B>3jVh0lkpXHe5|#%wJ8n?eLLG{1pG0Mmp}tVp3f{Bh@t)nnYBocR-fFUR z=xuG$#d5wJOUTa$M_r8|bhO78!v}D3fT5$khc!oO&3@ifT-MkYf6`7Z>ut@J+ex0i zrnryVEfuq0vs9b6HRS-Fmi~mU#Y7`eGdkM&@(!`(9Xi@uo3bJDfbH9xXaG`*m9U=W z5|+X~vm{iZoy8>KkM1NQ($U@yvmhBR#(q1oez}~E_7*_zhL`F2YD=7fhF2-^21~rr z%4(url3XaG7bzo4&d9c&?Gy*luU%i<}4_tmMZHhyk&AvYXF#MbkzX-zj+Y=p5wCpkl+qm*15TfSDJBb6(3 zq?95Jpl7)RWCNslYGPF_H8BUF%99Cc?d(DZ!>ZvZ!+O1pm68!N8=G-#oB2U&W`l}% z@x?uP;SI$aa>q}{W=(ngbZ9{LQf08E@hC*%G>v0QLsm^G&DCZLEwIhGh1Q`7(~AVCi8QFsh~ok5_1iwsriNk_b{Q-tja$sO>+#0w^CIeGOmF z&d-MnYgBfL$L^q}aeTQgrd(x+uoW31Y~}msfm69|Az-cPS-bFoS+F@<_wdGd6Nh6= zd91qt{s7;cM=`WA1`7?_)F4-Bq_(EmfyMA~u1ejw;&2IH+*e(z&=5w)Vvl?k4QH*_ zQYdcR&Ka~GrT?r36uj*_-3rJ%btrI?0Nuxm&IT1q;~ zMys4wt)8IUGFhWXF@w{@nAB=w%3&5j@Q`H+B7I1<0F(@E`O(<&qmqR{?G+1wQi|;W zJu4*x5e|DO?kK^raWAt@G8ykp&Z0cia=mm%de1uJt%QW=szYdNm!z{9{h;LAKWL8Ps!+LKM{g# zgnw`>8%BSYI*{L*MJ(Y2aGn&igjYGUvA>ep*k8^J9#Ara2Rd3?AnqWE8*|}+Hq2cf zbSP!C!5*b|43jqQrZ6e~$u>jPLDoF{19E^49V1HcQ+)Vfnxvc5c#kD`Q0X?*P3<<+ zP04QDqh>emL1@8)1TA>*6l+UBBRPoH5XnUFS^0S;a4pCV?Aa1t;b1xBNEuvVe^%IE zDeRx014HhaZ8i054M1^h`T2vb`DQRSCQE}UhGXZDD zOb}}YnvG_O(Uh3Y5)dDTlF2MFS*1ZSM+1oJLLE1&1L0sul&}PZpCK`pCC28$4Cdzo zMl21{VkmU90$KoW5ORjp99A?Z52uYLh$_Qbc_@abO0F_S5zJxaD$D0knx|q4f#xhA zG?FVT4>15>Tl4b?+*Sr|tJT`t42Z$md-%UZef*O}D8M0ntR0$1wL|k{_Jp~T8M(11 z)(Ezx8q%M}&IF@#5t|j1pXyYsp*fPKz88TES{by)bqu*R47oMA5}U&Ul9*gsN{zi# z40_3E1+7YE&`K!Ou$~|g43bYH)^$mwc63m+RB`ZwL;zGB}D`UYC(7O+6%gb?;hZ*2T?uf4GOV0_(KVT z1GR~BVgB+v5z)3uRM>>g!2fA{>H}%g*oz3%*o&&kh)ejxw;%9r2oZ#VYdof4A2bnyL6eMN&;$aj z72^o0z5XAltnjxQlOaNa1VHU|k_8>mk&-h?}K9Nb0Z8%Ge(HVB63{}7m2H2qhcH|dZ+Yxp^j$l9% zizH=&VNI%m(J5FX{auA53I>Qo!GJ=dV7QG;7E3U!W;bxz4Qh4`mtCV~b5bq1O15e8 zkPhktK0A^&UGwBk*F1$u>r^JKgTYFZQ^$snIgD%Sz>1MnT^_umpu(}|x5wF_H}>qV zm{qXDh7~M9_)Q#;9>LWL$h9iSwM3hhj5aHk8mrYBt5u{{Go&y_>XKU+Ygyr1rEo3d z6iJvhuIV62b!Jb&0#Q5O%-U{N+HM8`%FIK_`a)LA?;4+nc;v#yzJw6mcaO*PBt5xV zN-4wIp$=<@lDS#UL*uhZRp`f%QzdI;@T#T}O4sNvsx5H;((pnEPBO$nzNV=Vo zbUP)O&<}1y%>x!Z$P8)rXo@Vs_f&p*uZ_x-kd0;t)wj^>s}pSr?pGV_=NiE~En*yd zR#!6lc%n4+0(8-Kl*W00jq`vq&I63ms5oyhE;;yQP#rb!(_y~97-J;JBvJ6Nicu&> zK@?tPz@c0MOj?Wj1MSw4lqQgLFr!N&93%kY#z@)7NI96%754aLn?9g|Y7D6T4`lrh zgdEoY!2De7KLk5|*llPy^%NS8`UyV1V-v}$g7FJjY@}+%tXi?mFQL&2zl289>~3Tz zZR{p7IDDVSQ>anZ)?gR2Ll{s+#dI{obhLu$=zN@Q32XS`5Z|&C_yg5WaByrMLz7u2 z*ez=~nTDI2X9-on4RvO40P@hZ&7(n8ut8x-evZiuOa@{E3=T&3&}@aeq1kN|ehke% z!`ex^0zfNmgs%Y*a%YARS;9d! zGeI~z0&<&`1euMzoT@c0r$MY|ZPu&E)^W(zQJpoc&Kk}(4K0_rYmeG+IoA+ipevX~ z#%0f5Xq0p8kFPi#J$u4H!vrJDV1$vq&}kr7uW=7Ubx#k;qg4B#_Vi$u1Cs^NPR0uj zTG<0o;aO;1)8qzWHvwh4%o9O}!V^J94`wqcQmO(z;*@$OnglBdvtR|0*Txbyg%*t* z5gY5;Ny3Cl@gi$m;w~nX0X3jO6?_jWb-$YZ4TUX@il0mrs$vwXB8a&RVy+5twMzX) z&^*$@4srUKQM!@LZ0LNHwIe?%;8(-Pua;1WB|MzX4tpwu25WyiqZpx6!q6$fM3^yK zn3yfZL``UWcc7tSZTIB+p~(%g$qnu4s7x-^0j5xg656T`W$OvR8z=w9L7>0I}@Bl;@{JmIfZHRtLN)67w*V zn3zL|gbphTDD<8*mMw(Bdkh6tONX{_1KZM1U9KD_szb~I?!$hV(^}QMK)adNka@67FURL*NZ`!8TH~;SQ`q2ciL6!eKTtCJMs2MCEOa%G=JccIFp1 z7#s%?$t+YX0(ArBQXDH(*H*EME#a}ltZjHj;LxA|UnE z9c_L;8ZOBP6m`l_s&Zwqd+^XTUmSa67jA{ul(&N*a|Et1uOfsxNpWyB2SfPTmdFmO z0daFYjUy+eGS*rtV@WAQ4qMZ#FC|2-lYtRl$EvNPk^oBtD8Wpi@OnzDVI^xQv6dy)Qlf?>D6SW7 zV2K9Jj20sSi+R$=7gzAbnhA&2d|BK9goyTJMce@deaPV>h}ayycbfBJxI%$YR_0vE z!MOvjkkb`$H7cZ;XEl_WXGxV~pns(d7zmO$=h8t~)_rIGBrMB9=;)Bch7@IVl8-qk zISjw>5orW-Wc<_|?E%gR?7zaNKRgNeqbXRNg!)O2e`xzA;yEng06~?JizqoNfuIIY zAV}h_GLW9tgz!#^OcHDEMYVq;Ayf21+G97{FDaYq`X4Xg?w*}x+aKVGQHSJ09Z$E!X0&7Hqv z1_{C9d(g1LN+iQdzL=L`@SDLJ;9TdRFt7|AF5TAaw5_$MgDjw*BvvOVo{=<&X-R|4 z2?Mo#eE;~vz-l=^!SKs{TI4i^2Vx4fOopJLxx{1myLBpzcpS9lv8o+(H{V<{Hz?ww z;036?Yl>%M@oc`huT}lzA_~Q1#zw+?m3aK{w{mz0(pMAm_nle@CS zIZTWz>9%n-+A>Kg)sQ8nlvJfC^e>m8odQWt&9K@UImxm(IY}8BIY~LHn!yo7G-`(B z@Nh~j;V_&!;Xdq$QWl;BXaUm25{C5w{YXc=lngvOBb_dj^1ATH%cML!izS^elUvGS zt2ckZEVd9a1n5KwQgx4UsRw_KHEtmSLWk*P{jk-(@_Rr7dQgtQhGWvQIAHimO3O}0#QpC!zf zDrr`FAf{AKOZ<-bunr`S*_W^KyP%NAn%ZfxrYxioJGF$4$2#?tmgIM=gLx#`1;)~P zSf)SAcC!$uJ>e9<0KJnTr0>Uc+T&<~41XxR*Y!Ezgf zCQ#Z)Apk^)g;b^GEX8Xh4Oo(8iK;=Hs7>uOYExlxo0gFVgcZ#pSkP3aOQbW=CDK`@ zOQf^9eHUS;ieSJJ(IP$b+d|XVE=+VYER zli-3$AOnl`SAa#86JwEWN@ipm0T{@JGmsLqSz@+IJhn*_Q8sCSE^1*3qil&nJUC8; z0pG}4OJogVL}Anj^T{LRlSi1h9$CZ1tRfBlAZo-hg*>{*HcMonGBW6y`h?5*ED?$w zL|E(~La~Dgiz-A`;Q6d6OkH~o2%O3 zT9oRj2VkN-B|}f$Qj4l96kZip53>mgD-#lCXI!Ek*ibvLp>|+rTyRmzXI!Glk8o`v ztI!z>*tnzpIixnKxNcOTZedWjC{VX>JhF`yZc_@ki4TrMC`2DI5dsm@$q?p;b-_pv zY%oQCnMJ0sHdB;SBhe#p#iArr%4l3i*tm|+9J9DmWSugYCbUWkt#rmT`Zw)z(fYCcti%P{TH+TiOy}*HA?dlWs?&PNE@n5p+y=Pb`6?M zQ&5piOf=BWktCv&tsh`Kd43{?V>U)32jLD+sWp>%2N{HeM2y`mv0E8N1f+z#I3l*e zxap(lZI}>3R!3m>Dt!^ddHN~*DuA*=SakpsuSZ&9mkIf+!7h8Up5(4@hcg(=?5_8@`k(OpE; zU2IspWb;xz@*5`1W zuwn;-hLWcM?id~jx74(N2V9+k&sXXBM)p8ceyf3G=jTd)v#@FjKKkRM0w1&SQHPH? z_$b3i03XBg;l_spA659M!ACJZ=HX*9K5Y1yf{($i894mJL3)Gl8sxkKdGJPZr7;&V zY}~D6z=sA(*&Zwl9t7-rQmrZU98J&J^qj0#E~X4OJxl00785d0R`ptyI#hmA4(r z+h(dmQxM!v?n8EDW!eN@oX zrc`cZt*ag!mn45wzW;Q@N? zQwl@eV%$q*U()lCjC<%XrPY}UZNZFiPkMG%Itr^S8P1`yw)7xLJ1IG8LjdJQR2Ru}KZlRnS6}2k4^Jq^j ziguu%%j4= z^uC9lo9Q{6@>R(LhB@L|r^0np27{|k*>6x{RWhQA+>ac{HJftbhh$8q-uT1P6QAkl%Td&tC0Z>h&!uartZ9_WEg% zG<7$dx=eLd`n-Pcf`D~`*H`29*|C3oYpe$Qm3!H%IS7nC%9csPrwhLs%vTkPOIBB-)HyL7g(oz z-1XK4UZ1tr@3by;1*)upDyKEBy|302a8)}Ctkb*!tIHE`dK^v%wOi=)IDK}v)!|&? zbbD*60Sxw4U^2Ban_3nY3@a!aWikyln@&^EE1>QRRP+iY^a>>OOs0lLvuSy311PNq zGW)SwwbvupE|6$Gx5!plJl8h7VB8YB%Wa?Ua=QZc<<5YAdJSNR)b$S-!7drjp{Pmv7vmA5hjxd?(&8C167$ku_(m2Q^z*Y&ye7ecB z#B5q@#F)=<26RbXY%(o1n|wxqo#OKA!v(HvxDu94qfwA0Hgr47UCW$)-SHRNOs31s zrX}e|V`3ewQVon>@zCW*o1;9F_@~jMo*Iu%2torbWh%6S!Of2#aa4 z+2l4BAo8~Y5&5~nY`QE1AenrX7+XQ05SXdXZ1Oi3feBtu!0rNVQttFEaaB4say#Kt zhS_ZhnoXA*0=bDA1LSrpVl3g{6Nyh?v}I;ftsz5CqA);mH>?B+8Z-nr&iMHH8BV{q z)>r8~$LFoB(Uqad`&R)bAww`3?_B8eG?5KZny0i36EXr}l4MqJ8D4HS)fqwxoRn$K zI(@BLSOnw07N+7#!{Em-MPhV7+4#(+Y6FnrwW~%D1O1nqO-l_1spUsS2*Y?&(K`va zj~_3u=|K1f%qFkF!;R7BAoWsm5t=wofecb8jWWj|rNfh2Abb=QaH$(4{NqrFnSerI zG=uaV4_cNt>X1>_r)0J_f9g@vsEDNKEYrL-O)v6 z(}J{tOJd5Tb!bTxC73U%_+4?76bK95Sp?xxZ8lYUF|Bka;7Jx};cz2>CRsX# zAcazikBQ0LB(?%SD;1R|hTJsXLZc%U4?7OFKw>1eWK-T z*Xlb}ubNC%W>aOF#0C#AJ`CkFo8}n+D8@QAXgDzj88BxW#Vt=a0hcPX1?;iVY?^NX z5fQ2a1`XXbng;ynIH9A013~UJn=UnASiGcB;ej|!CG?(Pl?n8h3Kn?AAgXejO9cna zVkEej1yKY%lS*tm8Bs-yQJXir+B{r17 z4NE1^EXE))NRa!fcmuH@dFiWfoV&~>N4i7>4>8_4HwsdWod8r^U^dx}7!&UZfRs(e z#7i_;0$x>&E)aRC_#er@Dsa$3Pp5X~SwkT9RJbXc>WKy@G-82W(y5)}#u>w%g}^td zL@5)EPrx@Ci>nZrC!Ll7KURdT0fy#!!!@vR7-{ZGoZ?+L&SQ7i2V9jJGjC!YoURMZ za4xQO`U5lI)Ytg>QaHipTVi+XYEPKu)OHyXBZJ2X0|B?wAz`H-Mg?QAVKq?Y>U2|u zn7cWo0fuZ?1sFvQ#Hi`?!7~V9vuQNQt0gY5C1X!dJ85DC%JQi_uQ7}LY=xUgi zuyKS)#xV*mxOk#~OG8F*(WeP;YAV4g-c>|#l}K3F&89ic9jyw7pKyezP&CC*hJ1*o zd{M1NGA0{UDhfRj%!FnwNW4_G#>8+FQ8pDDx@pifiVjw4D$$y9kG;lUFA;?7W1z7WGA7T>k6I9R&vuRm#m%ng`xH4nTIq8ZYu+matVO{vT05PzU z%0W*dL@u1F4;bWND%*}izZ08MXrD+w?@?gWd-z+uHiD}ZU!ET8#_6L7C$Ap^^#vJsVppa@w3 zg`uuA+Zg;PIpL&&1mT~`US^Wv@e)ae37nH=LzN$_80#`{Qfag? ziv=TIsd!jPCY3;nm_n=vz+}4AY;rc&3`+t=GhwhU z8bW5%70rcpfy)=DwY#UAEf=^Rnic|ZR z=eTf@KI7Jpg~R$y#UE%QGRnNcSF^k!1=2bb+`)raW=L5L$f7BI{m={|AQtl6D2N!v zrkePq)>2O-`cm5c*P)39mE>VA!%;}$F2m|bMY%SG2#MqtZp2&qn(@>JPt8t zKFH6^!H%)_L1d<4b|2rkdCdiqA+@igj}Nq9kt%bKi!zm~U7CSO3;1Cy>&z@?DV)^sx3BLT{4=eu40szi9C zxM$Q9EO4_|mkzKFQ;D!9hR@4iUJilaPbHY#bf7p1ipWW;$d6?@ey9kQv7Z7PM1Cq; zgU2^wmF*Px!0xHUV~-C$GMoY#1$`>}Wm?cPYCZDhU&j*=NgwTX5J+SYqqIw91E5mF&`2`DT8%RPO}mlQNFXkf{w&lO4v8P~lgj)cDPjo=EcN{=g4UTKG` zmYe~V(EJ+E8rix6Kh6GnVw{q=A-FQq7{o}7OQI!;)<7B^v&4uXo9Iptde654%iNF& zmJt}}x`?41PwD)rR*WSk5h0d@dB~ei>4Kr-!AM@)y7VD;BBkT7O-Dx+0I~O2@-jD# z4t}E9;*p8*Z$SK}QTI0$30?u9v`e3-(NqkOS(KST*>VG{=xdB$(fm{h*0zEYuH}@@ z2se*axmB&8LdzyYI)EpSyq;A=kXh3hx0HEhhS%+Oc^1yBS?IGnVm>>ydn%oYKRqx& z6(m3iE-&^4rk6{&>WVs4+Xk352@r!NJq5nkNT4@ym92qQc3pZ`SpuBc0!uuFsLj^_ zR<~ppt0vAPih-0aOB9O%U7GRhZvqicU44Lx0Yb7#sA#FBpoH?k0DayhloWnfut7z3 z9dOdh3~>@aR~)A+_~3fG1@Kw@XW^qWYXLUYzq4Y)OgwvDI*QP6KQ@Odb2@^xEfLq_lqZyuNyU&Oq5|FjeSRCm>9(j|7TOgV_T<8$+909|zR4 z28(dgr1}`35H)xzW;h+r8n-tAKcEaX!2HoLXqnRozkgCa6|SC#pG!bFs!Nn2yxiMp zG0K#?EJ^icI(;y2IG?)k)+Bv`;Ac^3+)owCu^CQ6Vq5}oibt9o9s#>_b9(Jk4Wmr* z!aejeoR!`sP9OZP4E;vIB>Q}ytFp{(4oMdWy7+AK3i$fwxV&y#y#j*h*9uY;7sPJJZnYF)8CjI=EyrG}$*SwlwZ8JV; zx*i{f;x{A9sj13*7|P!a@o-|5J`4r0(KZfESQGU6FciWDTcPrnfUa&FhQilq-6%PX z3D0s2Lz!zdlOQ7KH73MlIEq}OSGB-%OpFvtUqcOIK02yBccBDG0f+RRw-K1bJPJ&> zD4;>oW(;)9jxR{BRK8?PD&qN316wFV2Jw)-gFZ>9t(s{HcwCQ$1{(Qs$He*+Bxox& zV_3ul`BW@``_gyXE6G%lu#|tQ6R(L#>@qpw7sK9{%GbVV+@K-@+lKtdxoeJG}dxU4d_&}Y42{~RF zlYucty^2LygrU1C{8Xr>yE=F@)i*;3?jFNJa6AUbABckmW`s$M(KsAU+;C)H0}jV=A(ObN(6i`b_8-} zhF6K6wjKFraHv-2jzr;^F|&hMRG@iB0-t8g^hO^<^RdfFOFI8r3p!7W7bX~1S_3?A`T zr#_Dufr#j8p)HAS-1uPbBdOx(>7TD?BK zp;ZxCjzbL72{{7}f5xCCdz|{@0TG;j|5t+rAG(u0a5?a9Ob9nAc(+>(XalbrY)Pj}?t(J#cjz7a1LK)5U^QNJZ#{WE>HJUZQgW2K(`G1c^~kbOJil zIK*fvI$oUqjS5{kMeG?TEDbu%n;45&kx7SW)4yAg7zwT5q+S0^&qkd1q@8~QZazs& zi3Bnf4+3ORpU8fNB0lj5KpJg1*D~$3FA2l1F!c1@$62lg%?l{4@sv(_Yqo~KPF11m zI&LuN^c@-1z@K2R3Do-ZzgxtRX8JrPEoh$;ZUva`OA?L(UQ6F)&>94i00w8-AiznY zUSJcX@&oAFW4f9VC)?>spHR_&<((m29w#p?jbTR(1{1s<_!c!#;hk#tz-PLS5|@9G z{s+T&??L+FBpO6i(@UQa;3XOa{T!#q>9e~*>ghv=$YT1wP|%D$p6GIJgP7 z0#L}MF+3L!e2LxVw$F#VNm1YElO9A}`oaSmEMyB)A2vukgUFvOmW{5tL4r0(=o-Gw zGKk)?4XI0S+GH_`=i*IAeLRd4b?SA%`p`kt8KiT_u}Ws$&^AgM-EYmBV;D5e$Vv4F z-xBD2LL-T(gZn1w3(mz;A&J35`y*+*y(AuiRmV-?yLDh|L@hWOMx3aU+^!UfJU9IhHuP~if5EjF9nhO(C?K#T5F`oh9G z3@r(2Wth0FYKVcvPb&e{#1B;Xz*gz|nJAq>%aH>WDlnDdq>kN-LTlJ?8L8cSLi5vb z>dHo-LR~ca4CkqMyHACm2~nlmdMeyZ7&y!$kF_;`wT#)~;FmE2EjBrDm(!2{SR4W| zh6iqJW(IJK`9WVYr}6lzj_hJY7lr;6zQe7|^qmVzgoi*s;}Yo{6RaMQ8jjSij5 zTtF5yLlQR+g&51DdCI4Gp!om@$b)7GqUOORfh3>%2JUax0n-#fi@jA~yfg>_I=Ioi zU-fK;`iUh%9P}jnY9RQU;k71(nncDd`ry48dy`Egev^0)BwKUtVQ3l# zP2)h+Y|V)wB*j4>bP{gP6*ljrXp`_r3>ZXSGhFE;fSYE(dCjIvk2Ai19B^X-Rj|(8 zX469B;Ki6~#ttsVByC;<>Ntog;AbWN1svotn_R|G7J)0!@QiQztrMPMIpL*31@>vi zf$HO+FfXuFuwe72-{R#5E6|lHbYLrENzG|V6)Nyk2B5~QAl&^+gF_i(ea2B*#9O!r zn0_-L4z!TL=<0=Le4uq4j4coynm8Ap+)KZQ!w(-Z(1HXOOG7-T6o0O(nc=iF2$Oj5 zNo+naxSDYcCw8ji!6xw~(_!Ps0~N59u8|MMRT|tnF%G&wfybJ2U1f4|3q-aq66jo} z!NH3kIw6sS-pzUhZZn{hxZ*^qg_ zF*+1RT5UE}rDzBy8flD;od(k=5i|jlDOL(7tuz?D$)GFXj8RzpTneO$0v#8!0SYS) zd<;J|_uSp_u&`i`HKqc_Neob${Lm2vElgmpbVNqVJ@y)ZmAAP&erb@GLJX2b#lT8Q z1Fs1oCoxov8gLRdiGlCtd_WY-=E5Nh_*>Ul03nkGO{I&5E?hKHnsH#QN#o}nE`9hQ z-kNiKt4Rp(ZkIj=7z$5EAW}$tfoRvq1eCZ@b3u3{S^XFjHxz!7#Yl1SW}LHW5-$(| zn#7S98*k31olQrhX?%&AXcb(B7){Zr6Y`}%HYGNtK~ko{nbE~1F>sKMX^7GYfb+J1 zzA2vuBP0pz_<(sD+=nDEV+?xZ2N`2xB7di07c9vr1&prP*1%S2h<-Hz0R!4XF?M5|s#q+vV1e(_Akt_0Ai)HL2&@__?vb$NAbjQNfe%`7K zFg6rM-x4R9)Rlx7Jv5M;!ltOz{RN$Ci79v@8zqnNotW=(@rs72)X zEtxbNdryW!LX#O~Y;&&7Ow1zjbU-AgFIWIJi>^3B-e}G*JT(WEvfBA>m%l0zI_cV* zY0C7JFRIn23vg;0qK}Eu;Ds13LBNMkL)f+Hu#rs^VS(0~;p>ARxyqyp4rrmJV~6he zNT9N(f(WjTG=wXU4-e!^1p}0r&G~)0#OqW39THBN9M`w0>DMMgjFOl>C`QxnYY7oa zW~ioP%SOv2LNwI-2z2E+3efaBH#*q3odKtOgHu9L+HfOS@~hHn$qP|}d6Mx-{F|h( z18#tX5#ogMO?SHJ$X;`PpspF~o5Z}^t&aiAvJVWv~@pYT@+o>5^*le#o_xL0&y;1zJ|)DG%4)hFyg9%8(+n*}7$psiVwez{k}vtdx$!A;*P)>a!~`9kfw1 zvW9s=u&Gcqx`GT^g&7H7@W{mY=?XIB4yQffmV`-3w8(cak>8nyOHz)DMPQ?NlG}99jdjTf-1eq3|+Pg5x($4rojWOPoSs|k~^Rq$* zn~DT7X!`dFl86h{N>dTZSd^Y$uw?A(D0}*C;EY6x;xLNU`M9B!alR$m2vjfqR&Yk* z<2rPSSHSec!5KFai9m6}mVQ4t{X5f1Ruth9D{|>~gfqUl2^Fp2rJoZ1b67@C`qEw8 zf7UcmwrD3dy&!ja%X|{43}qzqE^)A(wzV_1xOkKjiDla2&Ma0<5YDv8ZQQ1tX!??fXuM9< zz%xD~jFK;Z6xYVt?IN6#$pG5wHg1DLgi>NbKyj^%No?6r)|J>rD6tKTIBLklyXUea zp~Qdz3*%xZNzrh-mB133?|%X&sti&vL4(<_c%LpwVq!^Xl^V7?po;{*g@iICLv}jP zp$Yd((tcW7Xp!>hkgKVz7GzT60yVnRA}aueMahIPZhub~k=V!;sprhE6>Ze25IHqN z?l#XF8p}#%5mGaM!m`mI!--YeOZl_#5eQe>P05gN5I0#dGM0|vWXNlZ!zFG_8+_hH zcTG#2;}6(<+@~=Z*UONr9Y-4N@}?h}{}Y6+Y{Dr*mo`+=zccDuroHGnVcY?1leB-U zRj$Q=pAN0|1C~g;NuvEMhyD1euF;H^S^8~6EecKhZ5Ie)rr|0%?a2uZ9!b1VFb~uI z-JAw~qTnEU!0C7GG~k85Sgy+#XaJ<$m(t*)YBF6U@Ty6Ju~2`^TptS%+-W~}rXfW_ z`BaE*ZQ5mI9Q=fVEHu*7@94+lp!p#={RzPUWZL}}4K}hVp^pO!PGe^!Sv&~Ci^fXK z#Ni+ERE(Vl`G3ibtynT8{ilgKaS4;iN*1zJ5u+Ul31~WTK5+T4T)*qDW!^ zM<2UnVq%htIdZFw6}7T&rYmacgBF7&3OPq^cf!vi(5X+uwWPX^0`IIzQeW{`(S1$wX1igX+m||(T9JEQJkBRMo#gm3xDVqeD51M1xKK)@6P9|xH?)5Bj`T`Z+sdf*1 zo$H`q2vcYeoM)sXz$2pS4Fx(LkjNBx)h$xN1LvjT2M3xo|Jopl5fK`l`IiKcI%woR zLp35l=>%Ql1F47r?-?1M;L(un1O+%6acPf{>C8aveh6AenG$%~C@C5tnIgGt0jMN5 zWVcd>=DdfaVt^qaL#-d4=NJk)Di7GtNJlpgj~K;A;c`Qxb8#35y%}X{C~ThgJ;FrH zAy7y32^Lm_J_?+AsPP=2e$6bE{pW7O9XZc(K z=V^R)FC|DaWR}b0@GkWaDX((6-9yTqf!Z1iU$sT~QoFBO3%q2)^zu%8rIr(F{Q+-v zS3WQAyxRFrp9e1A@}J1(w{>~^0lTNti3f(Y$W~POoX)9Gt{vGV*AmLrc3)BD@&)R# zwziXUR~^gNR-fSv`0A&?^(DSOJT{i8c9$pM^dLgx=6ihsr{g5Pyfarm!CPH}mx(#L z@ip40Hf&5md5yEuWp~3Kouf0~qLoB*EuE*hJhgRNoTq!|JIm|+0cQ;TCkFyClY}|` z9z2kI)^MEP?^@__I`jC8zSOdTLt@w(>Q#bRJg=Gj0#KDz%&d4o$7ytsU?A zwcdce)G?5U)MJ`AFiy5XCwYD4we$UzK37cuE-u$j{}jA+26DALco8fBEdj}@(jqef zr`4^c%M7pE?eZ)Hkiggu?U-17w=*_do_OuBCfRGVB9DeO^N<9m_+TLf`eICG5JI0AVpVz0YCyhs&In%Sq<6Rmu3#TiXe*%q4Yp2z`K|Ri$9SBz0iWGH*h-ggR-WgqukbE%dd3X1*&V|d zI7iMevX8Vooeq;}C}Z)qWj=2W`1keG?A6X5H7wzB`U||ZftuPtfxWWQ>Gzk9EAJ_& zpIc-1`>~-Uh%}wGs{~#I*7pRkhQwo<8g2Z}KmdkIpatExs`R433rJI^X`AJ8NQ*_2 z-OAw%*j;XaZ$Wo?E|16Qb0S|#6QpUHQ|Wa$y9?U2ghML}odF@ZY9J19QL&&|e~y?n z68EwX5KBNBxjYlRwVuG~f`k-3=zz?{z!ND?y8T@FzaUyS?+F z@*qLwt{@9QH^F+qCLoxky27bqTq`c}xfZ%S!kPB~gANdY?&xs&Ve0A&aEXv)?=Ps; zL9XR<`n|QjN~e(8awUgTQ6339gV|Z)ayWf90mPo%)KNYB4GmaGAcF$VB0+=RTm!GK zvI+zkjK}LM^LZDz+)m*faZM`8W|At86!hPhs|?e%#8v4m13^~ls-l#uiUwRhybY*Ii!{{+fl+r$Yxw^(7LsCQr$v9&%L<14wrqQ$Lj~{!Y{Ru z^nzv)wW!3^F67H4)p$0lmjFy_hX?v}E^yTexpu)~hsP>t)|Q`Pp=4fCU7}(wtYLRl zyF93cacPL9g1<`0zdUgK!5N|6sC2tv0!tl2g7}>v76L-CQiC_1qgInGNDYx&EppbE z*aLR`5tV_yTI%&Vgk%G#uzaSIT_+rxB-F-L(qxu8`U;4jPoHJYaKa_=PO#{N)5@d- zh&wS9k|AJY(BD#rkoxXgk1&5pm25w2DAR(l5=!w(QV|PE`t#@7p1*fOv+{F3je8T<*{Y7Mxm zo$QJahfv^iRlR;>Um;z%TEsLUeUa}Z|3m}43s+YqQ8J+dtmCUEMg%t(O(ee%TkLS6 zQWchkkfC5zXeym7puZ&^qHy8LhJsKa1zb*_a78mCQaprOrdUfoXOBJG2ROP$>bv5rT677h|DcC_-_Cfn0Kt@D|o^)>S%*Z393Dp&TIdn;GfC zA-SDPoNi&?!0c#?A+2itI{c^SXOJkp0G(hVMPP-@^tpu;Vaf53B}DqpSQMVd_Bacynz5< z<^_FOFNHHSf~m7qQ~6y&^umNFOBH2}g!RPAS#cgm3D)ocm!E~+oW4?zE8qfE>);|* zaM;qj)aejXxyI+@YO;_NumNmJ0~K`q*!UI`Jr1ld^qkNilR|4T-3v|Qxav~hLS^9w z!&V_O5D}Pg0(hFjInmUe%6vHM%!lp1)j@rtAP^LjywHG6X z$PvOCOYQDOWiWXV`f@si%!uIS=olYg5L>6n34r?)r)OcHN-Rb7jCQ(H8*ml3vM=-t zXVNDbvZxt_E&X6L3fXdjz1roj7q(dh?wn9;R@!Uqm99X&keTHHh!K@bF}^8OUG^H6 z{M&~@j;{nSP~0_QH6PR_7)as@KqLtKRU#+ITM!yy&Dc%IUf`#>s%xvoW%fGVGKX^k z>O&!+{FQdM6DLgED{L(IN=t3xx(pA)Fwg z0s{XH!l}5FP8TSke*RjDWiF_7yX!F&?R3nySAuK=@dut7h2wxJLZ2N-9@9>U zQ;i)$fT$wJgVun!93klR3+t-1lzS%n3GD|)KTSPhpDqs==nG+@{hGQ$`CbEz1a6V0 zqL3$0qmHA6C6tG1F%Dd)LwQw8)|5~RbG3Z69yu6Sn>6wY?P$nC&yDMp)TwaMuyCSq z@HKWH7;CUv#o?0veuxBC+l9i+ZJ+OS3&kK8z!VA(2>au%QK>k{B8eT^8Wu_rpL21o z%jZn)p40w>P&?Gv16AU6$D&@G>CR~|IP=QTQI}>kT)cRb)5r8x45jq3hs;hzxJ=lAN zU^d0c#iB@YdkVaA2sl|lLbA)HZj)hQXPeJxK-5D#NGLoxq+Q&pg=FzC@D5=EhIGA9 z?Q-2NsV;R0mxXNM`GqSA_AtmI5OTtj>Twv!m&_{RB$LsAv5d(eR3HxN7vcbMPZlW` z3TF^m5JaO59L4uW&q639ybwE~z~=>3j->kvV3$`qnblokUzm(PlxR*eT4VS`Xp3<3 zfpsLBNc2m#GlNn=5(jV?#p{!r36(YnNZO_KC)<>PCIM$92uL|*DHKidXeVR;7=JMt zOXIdPxQ<}2CEeGmVk}ioYB1UGV4nufVi=qh1|KCbG6(QAj?SGDVGqLjpC=NnahC0tA#77n+c~PB`X+5lg0hgnS6+7~y2~^aT^Zh4TwL zVU`3Q8~~;oFEkHi{{l@8xuTH3)y`_K4?<*9#|uXcaWUL4z-}m5C9DL}fa$smrjlzS zR7;Wslbvj4|BL4!04oL$01FKUyTbu7VXw#To(bLw21jw#f<_b?46vs$W2(@oal=;t zPS{TrqX0t+cq_eb;R1j{nd_wE6~Ym7)nGFp&oW_nI9ZQyt`{Q3;%y7AN3=1@WV)M7 zkCs0-_Qq|kuD_|n_}gE&=ao;UcD&}C_wPCLySS)RC-EFLY z{k+V+Jp0oH4;=kVLBS^@(lgAZ}7-^CqTLw#zVRUV}b@=A( z&p#S?pRdO)FW(O%kpJz%cdMMz{(YRQXEM!&RbAqSGo~(&soGx&OWaxDaJ!`@{~Z9m z#F9bVoo>oZ4ZFdoOxh}FlbB3+1yXE2rYFOHv)6Yq&1<2S&T9cTJ#d;qr! z{<`6RR_MnK?c`oCjs4a@s{pma()rK^M_X?yfELpMq8r|=G-4n8tp$h(VJXxNK;Kq+ zVoq}SK4^_2aM4(>|7m~$;*NAd96TlmJROjO6h?RpDHlg#r!ipp68O&z5NY_?&x;f2M+ zMh!pxB1jfOa+s8~1q{JY!arLFe_PPpmnRg=U3Spi9_HGdmlZUdO|Sj++pxB6EO5S6~19-HT7TtN*Z%C!djf-FsgRTeWY%s-t(T8gO@?Cx=a_c)izay`DXI z-xJS<`#$yT#J}&kIQKgDGfS>@9G&0$=MlL>PkCeEcVC^<{-Y&NPyM*y?BbnmYDa!n zcJ-TA?T!R4zqsRwULRDqm{#!Mgr{46_r~B?hdwy^rD0bNz3JAK_N}2!8?UMv@n7e= zl{;?k^6KwT&AK!Hoyv2EU3^(D|LZxoW&xv`?+u!-0E#TL^?|wWH6W*(?F5CJr{tPj z<^r#`XwfP=+tv#!Z$0(S`k<`F4wAz+3$`o%z(OGhZ9KZXqe4bSTtz(h~iEMwyfyHqyS)8{v;p*wzi0PC$ss#Iay#^YZr5NFw1PZ=ETR(+i=F; zZ-1x#n~~uSm-krrW6|gR9NCYQ-B~i|XJ=@`#UJ1B?sX$<=AxC0m%OmO?CFdCo;UKz z;&#^`YH`v1uD_3MbM%vspRTz7%*7k0JUHW_>Hf=YmiFJB`Qg{6U3&HUC*Jz>Z$tf+ zGh5oPz4eDtoB!2k*0D3&^nQ8Y3IDul?zxLQU2@$gcbyjgX3D>x?LG6Hv5oI<+fT^#y&y0$Nk6zP#^1w4|qWgDQ?|%0$ zTg&d+y?yn8H~;;~KTdqEuKro?Nxw|It(9fS<|`H+SU1BmVD-ngRyRAG)2^&;z3I-b zt~8ZHn?HW9&BAUQ2aO#3Nr$~v=aoM6T>Bqpb^X4@C;z-~ z?`^eb_j>oI5AGiG{jFErF#XX5Kd$_EZ<{N=DrxoWq&+z)N)_hC7(aM?8sNn zx^K6?XTR>tE8ZJ6WZhJboXz2By z^c>RlKX2p|m+!U(TP*`MFrTS_JbV7?H%U2X$1sbnait-m6{I;X$?Q(2s;hSfd@5t* zjy+iM*g1vi6eR$v;B;GYk!{2%+bC25BPm&E!{nc?q=H%T>L3f%K^CY3SaS~@{?*r^ zXTihoc^(XQm^%FFAD^0i(%s{GoVMuOi^?9{-m3t@_KGpWadac;4XWAASFUL60nJ{ph>5 zT=k=&R$X%Ns_EhGKW-R$;g_q=9P-Gp*)RO{tUrq0 zdLnzwV~;<2WAPPl-q|qt=V=$*aMFkY&yVsrR+K-zuKmL&_6xsq&qXz@sXbWHa)Q5kiE~PpA9U%bMDH|2VC;j zN#~t4WA~G@&hDRm_>E;34}H7e7d4l(KY!BFCytsv+p#4pIQPR{U7mQR$Nrh;eKTr9 z`)~V|?&!9?WckD|pMBo9?11l^{-5rgblVF*JlAv9hoNf^O)a%;dg!`O4_$osqsKnp zy5RF?Z*9En`**%S@0-$7H+33#|E9|qHhg{c{JOc14-LONYu%ikO9u}8_xIJ$54?Wx z^bZ#;2vwv=Ssql?{R}Hsagf05y zfF`m{Uq5yIdC^iy3xT$ZS97G}Aj*k{zey9px`kB>i&ar}b8W-s78Q}Q`-`mHK-tZ( zmD#4rX;60K6Dhl)cvLD`{{dU$-H5z3r}0)>;~HDz4GNJ8vTcna+u1U>Eb|G&5`jbI z?eJFmhr-qXZlYG!_zS86)wZ!p2U)h^y^E~9I7fdj1y3-5R0;0>TyQZ1;DlokLJnIM zSbN0?RMNf+e~jL@_CQ5__ky?H3oPt=N1IzZepY$oZR2mb{LT8dtDkkwEf{>((dT_{ zREPff``HKc{&D8ca~`<&C)bCSJNu5f@77D4;nkO4GpTImdu?xA{$}^{dj2$e{53Q7 zZT)@G7iYC9IQ5RN$Mm>w|C7Czt{L_Dw~m)f#?&qA_fx0K?_V7VU3=t}ld~qB_T1GS z{Y3=e{wDy)SLq~R9|I?&FpBy`L-!mhA@CGOP1x6cp1Fyyt1@7h*6D(}U-=U#mHk*^+q z|HCdT&!0HExM=Yy-B&zz#jVj<dVri$y1wxd z8weoDCv2Tv*j6#(!AS)_Pjy+_6y}5dsiwQwhN=y73j5|*=Q$T$Rr=V!->WkfRd;^t z7JG-`y|(YT>HRa#?6~OO$6qde-Zq|V-nMYKt!RDc21|UbY(w{kZhC8)Uv}V_i#W8ZTN9`Uj4V%mi*LmjISWa zx^3{yZEn4L(J%k=Yh?BvefDjbcJDVQ*!KK<-JWWd${j2NY2^+Sy?{x4s&&yZe`0)u-SDspb_SF}U z{$t&JtLHw}^3ESDCl>`wbw_5kJ@dLgZ!K@{I(1>g%SWFL-TK+=wXf{z8jj33bAH$1 zZ)N@1_O(G59qImf#eY7&_oJ=z?|t#A*`D6t?6~}-TSxDcn z*uVbZV+-E@z& zwP4GGMb{3T@J2!71!v5Ad+H*`&wsn~l3yNtGJN49Z@*Xg*H=Ox+>$M2 zOFo*?X4>RS`&6T4Xo{U_1 zzgISJdjO@na^`H!kr##p2A%y#rzNkv(ZAFElaKt+$)&MM->y7k&eeshf0}UF@<}~j z7*=&rql8h#{i@!R)aciqJUdTjZz z-@mhZuK41uRb6Ip+&p5?yq~|i>oLoBU#~d0<>05*>)-wPu5pu1fBWp$lQzEe?D`WQ zJ(&IGNps$4G4H2|Rm)plx?+E)cGJHt{`k@@fA#(N+`s=jtW((y`?t>;dF4O9>w0kd z8?SV$SpUB-w;%j!`GhaWj$1M1YV*m5&v!<9ba>~a#&=g-{?bdAf6(XL$8V43`=9yt z?y=WDaYz2U72kG0@sSrDS9NZ8XZ@zRGtQcHXh^{iZBKvUv;N!e`zG(fp09rQ!2PS9 zvF4UueD2Gq`TG}Kc;&wwCtnn)9k{ZWx5IC{mvyx7us-$snE!4)cI?hQ55GTc;;b1r zj6J&cf@}9aaetRd&%gWW^^@{!!Iq0b_+2OmBU(3}M!|@z7-IeZCm6wmpADi9ApeGq z95Dig-w2i*j>$h+G$)f(5A*bZwP4W2hr5)Yl2h1cT#xQI_j;{$r|Xv6Z5KXfD{24lc`L&e6WYEz zb$fB{6XQR=Y0Eo)+pLp=_fBlL@1H-P)A;Jn{_~1v&ztn)>~o?;;obrJ!W-r`Ry_9l zO;c`scK7|4ykYO;8TexN|3n-9_No2Yq-Rg*)qkPI*ZricA3e`;RoVQhV*@p8rPsbuG_YxZ>vpyRvU7x#EX?=l$;a>h^y;w)w|pr{xtM{$N_m8=hL3 zJK|tn&#m9y_UhBvWpXEvIjwYI*g?$u*EcD-D3$zM)bXKpdQ?^Ib*eGQW8 z^MtOrP&B2*6@UAGFL>qpgZIptU-ibAHLEXv_qE%*?M_wbDXzFA^hORT8kR1hr_(pM z;OkM&SuxrS&P?Ntw#Mr#->==aVD+m1UOIop$1j}Q=7y6$A9d)&a~D_MdD%(T&#$}pp3%Rqxcrt&SJ&NN z{pM%u{?qGN@q25Iym(*UEzyn7+|~V&objRUPd41qx7hmRfUg{femS!9ipmQIv|m;* zYSxl_7C+eX>h@Qi@U(qX$5(EDFaMm|8(!G=>ZW}^Tpl|7*_n%5e|kw^ZQoq`2V2W} zd!PCDXQofTDQvazrZawVo>O=5=;p}}{ql+L3i~4O(gzw}+0=T=sJ|V0@s;<2+kCI~ zI3r81?wYAM9y2^R{JI`p?Y$dhL*ZUVC6zf#uYncMYvL<)mNsY?=1K z!0nGc@Zl|wZyJBk%dej}Zt8*Pe@?so-i`}wZ~ZM$bl#_xm;HR()kAx{bkd_2KKaN; zC8KXGTm0^ZH(!|fh3k`9&%W`AZP)L6zn=PAyPcOz|Mt$_Cl(Lg@%ro*1wXV~UpC@{ zA6lQ%^X(_D7|}cT=?_MJ_}1L(KMAZXwQLAxy$+$-V)DU{ZTLUat+=OO9)uWLwQMmc zKRc^?b{Eq>AOCvGh99lZ|Mu+{UwvA=_|)-B?JL$poUE~7;}w6h&f<2dTC^}_wJ?2A zw!V|CZ@2ccF9?DE;Ufw!QZkCA3|qiB$2dosdB#Ed5vHL8T@}F9Rv~ z&;xK(i5F#X0b}53--(`+6OT_?ryx1in(N?Y<&X1P1K(&ARE{i`Z`>0!-H=7hk7F~48fiuwesuer4PKo=Ksf&>l@fJVG3 zo&5>}HYc>$HJW_XH#+slXQ94@i08F;=Wp!Kd--Z+?PgPM!LRo|t+0u+VsE?r!s*lf z`9)ps-}Qc!CQON*<>h8P@u#(i++HrHRp~3wF|Siudv?y5`z42DTI8Ir`Z7u`{Pl%h z>D$--W!E>9&97+pWhgR^i-|A(xapk8Ifm2MY{C|@8Z7*DW_59YlE5j>yS<;?GR+#k zW!GP0I8wak=-2Nq&JP!e1lhz2tiA2MYOkZ(v}au3OE*hc);{mQu%rKv*2<^fKgw3# zyij+Ram964i7!cV3AuaCBi2s3>lk};A-l$&=AXZ=@N%8K;qddE@RGPVo@9Z@AGb9R Qpa1dyRMO56FF6JV05XbQ=Kufz literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll new file mode 100644 index 0000000000000000000000000000000000000000..97f569f7edfab9afe6c465f6ea6fc3dc6987760d GIT binary patch literal 578440 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

7FYIuT<%tnS?Xd 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
2r+bd<4Qtmw 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 literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Network.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Network.dll new file mode 100644 index 0000000000000000000000000000000000000000..9973826ef3b4577a2e376788cfdc6d312bc9f92b GIT binary patch literal 1687432 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
V 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 VJ&n;26RBx5deTP1$Euh*I+_jzp<)nTfhu~Ei? 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 Z)T`(|^NfLUz8j-&DH$2PMkFAR{{mc|Pk;ab literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll new file mode 100644 index 0000000000000000000000000000000000000000..020bc6d161d42e20d0f36b71723bf491063731fa GIT binary patch literal 1158024 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

B6Ak&A&V;HkVoa&&0LErAEs;eP za>%2AA~NT*9;LlK#an2Ri`kV75?R9@VyVo`-0@+hE)%q7h#C9=q)fFd%NG8b7CP()^o8OWjv zIpmSKjJe373OVFaKoQxw&3YAb$fJNFGM6`VOJq@nA~IJn16fodhdc@>BJ;~;J%>CB zC?b1hGowNdc@$7Y=Bj3Hi7cv+LmmYbk-3`nkVgSUWUgsuRLCKZ0*c67+srMIMHO<$ zqktkZ*RdY5s6q}!WUg=KI^`XYUIO`#cD&&wy0Yzl) zY}RwgqktkZ6U~egSyUm1JPIfxJFi)YUuba6gvZz81d1UTq zF0!aX4tW$%MD~GZy$U(xQ9u!y2b;Mia>%2AA~Fv#7go3r0%B&kDTaPWMZ)C~3MRHkRTu9%;l6A8bvc9&kzI`R@*OGanXnjjd zDe2oTXJ}={EUI$#PF0iY?{#s==js<1(XBBSP|VfqRZXhrnkO5T(vbPwqPktiEUI$# z0#%b*w~KtPeta?AE@J`3T)jxuq}J^|)u@z)%u0*vb{VUr`umI=^11IE^@XezKcMyM zG0FTst@7z5v`W@xlFjN_Qrnz$o8+=~UP@b<^}H0a4qjU8Wi9zZt@m_V?|P}s+F%*2 zC)HbD<*^BkCAE$Q^0~Ufvbqh%0*bkMgQ`ibqw!3mQW`SrE~ndN%%Un+Z%{RS`a-?J^cn%+=deO={il9~za?klFUbx?RRBs&e&7Rg+q`i+rx`w!Chav4CQ(zNuvsRxsFd`*Zy(X^GGu5Qq+TVpJsn5%cHn$)`YpKnx3LuP}Obi0gM zRORZ8swTB=7x`RWXQpnKv4CQ(&Qmq1b-OP#Dy1Q_@h5b@vM)A$6>`X< zfFd%}&D;`MRH1+(GJj?+a>%2AA~JtrF0!aX4tW$%ME0d-y$U(xQ9u!yzczDA%2AA~LVB9miFO4%UFdR@+hFPU@oeV zLmmYbk?CkwDUn4La>%2AA~KzlDnOh=@D&&wy0YzkHupY9gLJoNpP(*f-X1xkIygI1apx^6>`X< zfFd$WvL3RiLJoOkmSQfls6q~T6i`HFY1Ts)Rmh`&A~GLrRtYE~vrJPhkwq19$fJNF zGRv|avZz81c@$7Y)pE^x4tW$%MCL=yj1pN?A%{E)C?fM=)MHO<$BU3ULSyUm1JPIfx)6IIwq6#_WQ9u!yl~@m1R3V2v3Mis#X0x6{9t9MU z`9w3LL>5)ZA&&xz$b6FZkVPH^RDPMCFe3A&(*|ccKq@6j8Y|eaNGT%3bI~9z|5{N+0qlqOzh7c@$AOKp*lb zqVhZRA&(*|XVHf|im2R;KIBnE<#*{r9z|5{P9O3pqVjw6A&(*|zfT|XD57$ZKIBnE zYh{_}ALmov`9!VeaD5CNx`jAHvm5x5-QAFi1eaNGT${*2( zJc_8CO&{_oqVj0^kVg@f$Iyp7im3cCeaNGT%46w69z|6Cgg)d^MCAy5$fJnL#UMqln5m z^dXNTDleoDc@$B35q-#`h{}uULmov`UP2%8D5COG`jAHvm1FcFk0L5BqYrr$Q8|}B zX2` z7VI*nTltEzgK~&+vT~aemG_k87tnSo>nU3(J1cuBM=7T%S19w8$CS5~B^Ok$@@?h& z%2CQ$%Js@TV`r~E-FW*GBf zrBB&i8CK>h4=OJy3oT;IipuKB*2*5rsmdkF?aGtNi^_tF>KG_%DZ41c%8AMxh{6=|4`PkyRkCd+{-&Ve_{8YI>`IYjt^1iat2aMTB z*-1H8xj?y2`L*(_^0u<%5=MW^W6W2Tot3?mxZ~QLa@URHl`;l;u96`(N2m*;W}=E>vz&?o*yoUR4%aLFb*)t8Az2 zp$sdRD-+72%1g>ZAJt=2vC7uUca$G0=PP$Ak1Bss-c&yDF&!giC*@#eRGFtdtGuf$ zv!XGpDPLCxltYx`lq-~Z%I}qbC`)}@=ee@2vcGb?a-njE@|g0X^1iZMsbivSsO+j7 zrktu=rTkiXN_k89V7JaGWgX=k%J-CG6tCQ_JgK~@EVPpDCuI#~LuG4acjZv!XUh4? z4ax(`pOk+pm(0|0RbEs&KcQ=%vbM6Nvb%DUa=CK5@~HBXvd|~>I8fG5wp8{|j!;fi zZdRUAUROFlrF~R-6sv5j9HyM4%u#MuUQjwet^HH_mA#aoE7vHK%1cV;XH-}EmA#ZB zl~a|=l?ml3Y(We4Sl%E`(vmHU+! zlm%8crc^diwpaF2j#DmDZc-joUQ?D>#hA}3n<%rC{gq>sGnBc??aIT-pOiP1MLwr% zm$JIDqjHeql?ml3m%BXUy^0@LhWyTuDte~u^^eek5M=571*DLdsXO(xACD$}& zrn0%RuX3z%o^ri%ukyI^XXRaGna>-uvhr1Bdu31M1mz;-R^$&gKC`~|U)f68OBqtmRIXF*QC?G) z*+9oh`J%G9a)@%Wa+?yBHQgJu_E$!fvz2RR<5dJa<7Q8rU{RQ6WR zP;OD4Qx@J>=b-X=8C9-R z?os}ryrC?#iOvnBSJ_KBQaM$*O1VRMMtMtFv|sBg+bQ2u4pUB2<|ub7&nT}eAOE_} z1!ZUDC(2pM)ylofeC0i5`Av1sC>tvS%7MzU%GJv6l)or5Hq&)h*+SV*amvZc#ma5U z@07nNJ)7%srwl41%H7KI%3I0`Tj=qt?5rH39H)#bwI9IpISIZwG-nWy|-c}rPjYdy~^8!G!K$0_G1*D4Px)5=@Qa^KQpN7+!>TRBO& zRJl>PPnlAd+eXi~%8+uRGUMBN-q}vqPi6l0+U6Z}OqHMRsOPtx^!iKLb!TngE}FZm z&UIzWO6x24D*FxSHK($`ceEeMGs;7=bRHwD>Sg>v=}bS>Xo=a#a}K6;EOPb%x}tLJoOpZ&DY%8C1HTsigt zUAvXd4%FJpu0PZ@QrYt$J^vr9apfK5;+R@OXJ=cUqdn2v|C@{q1$iaT77g(GzQ zm0gb1Z75eCrE}luzEXyiYn5_X$LB|S9j+WYTldk?I;WIpmD$JWd{OrJv5tc>e5{W1 zPxL-S`QnJqJ7u@ybj?$?`l+_>XSyyaYaFlFg35{~=sZ#O`?=01<**ZVoRo7<(zg9V z*9PSWC+qd*DLPKdhfdYwO!=j<Q?oy6AQ^!cT^DOP>*?N2^?-R=jnBZa^m@V{`5K*lzm5atd*TF(CsT1%+Y@agUfWCo~vt(vgzeIF3O`<=y~Utx<)H+DQ8}(_taPESSY()t>?XK z^tw%%d99wOuha2RzI45=Ny@iw(CsO^+^98`)o;>k73CAZ(s`x)L)rCaZM$;hExN|s zs%xFH?`?W6yIpgX@7$q%SB?#OKRK@JqH?|RSLKs;>bzENR9;a&J)y_)Jk3+Sb(gNk z$`*I)@usYBkM2)phkNxLqMS9U^H%x%eR{4_KJ;r{JCs%K*KIza^FcZ3L2c(lx=tux zcv#nF#)T~F(ptStYG&J*R+e=sH}GybUkQJztbjCx(8+%=`^<+D0Bm0!-+{q-kpv+|+m zbZu0kviI}qRStha^Ip{XscbZ@>xr_%pLNbC-~Wr=-@l~Ctn!v})nBzeFYB75eCZY4 z$I4sEz^mE^<-4!xHvXo^n6k*<^?aoCyspQSvc(&^-YKj9L+dJ6E1!E)^OVoOr8SiW z-qyY-hrOfoQTf(Cbzdk)|4WaBcXgZZ={A)U-q-zO3UjIQfubFncPC%_xjhwqB$#uPYZXTA0r+R+vYX z+4?Z(qaP^DLCQi)Xnkd~B@45^^1-DvuJkWmmJOUS#Er?!ug_Oe!5Z23`991x=?}SX#s^U>4JVeZVYamek17W`_BsMn9`>9av8< zWY;%qo3H2vXs=n<^l4-x^JVijjrN-j%%-YrZmii-)ve4A%+_XavyIuuY-{#4+nfE& zj%I(ev;IbOS972lFh4Z2%t7Y6=3w(ZbBGxKQ@!*So5&?iFwS7m}q`# zo-;o)e>KOOcg)Ytzx3JNLdD5usp3?#OmVtdp*YKw#kpo?ah_SZINz*Z%rT!YE;L^( zE;3&#E;j2FmzXaXml|7)nZDvOvr#eEY*JiqHZ86&n-{+{-zcs$+Z0!s9gAzsKyj@Z zEUq(q6xW-*iW~GP;Enpn27YDsD{eLi7PsiD-LW9UXr%T^-Mvg*%=%Gdf<- zCy_6jk9PdUe5~Uo{rSdU&1xO5m^C{7X4dZbyRjYrFdKEeX};0%w%MxVpJtbif0^An z-qoj-@0lNVylc`>#fo2c zEM8pK@qyyzjwOmaI+iT%>R77yb;r`hqa7bCp6FPnc&cOB;^~g%iuoNY6o2k0i@$et z7w>hfR1}?`C^|YnS#)-Os#v)5)5YSQpDC8;>?xM*{A{s&=PE^a=jVz~b*@@`rgOET zr*rk@9Zb z{Aw|)v#;2_bHief&W(z_J2x&4==@r7NarTSVV(WOk2=3z9NoETaeU`y#R;987iV>D zQC!}+RdIXgH;Z|l-!AUy+^%@IbNk}4&K-&;I(IDo(7AK*Z09b;^PRgEf9{-B{I&DD z#ao@=i!XE?R;=AMRP=QnUToTRWU)<`D|YG{E_UylUF_d=ba6!2F~yI% zjxA2;`blxBzAXIguH%YxyM9(&+;x0$W!DMCHC;b1ZtOa-xV7sS#hqOz7k77^UOduu zM)6eFS;g)axComWhConJiLrB^+=+C1+I^Z%w^(X;YP`8Lkf^Tyw@ z9zws-bH-bF?BuQW$|mbOXEoYQSGtbTw0$qDx@gvCbwyn!>nlZJme2Z?p7~bH`m3({ zGqb*}+xSe@TwR|(mvxG+^lN54P!#4%S&!>kYW=LG^}O-bthM#b__eH;^}M-R)X%bL*GQ(6E2xuI9(|NpsR{=Ygm{!h-ojrA%ueOtEP z+v)YtbkJ{YXS%1_cYP+m2>rp!^Yad;k_Rd;V?+y;lT6?MHx_0BX%~mbR z_APczGd8kbqjq&oz3-~8nC-qpE^WrX@_W6@%eQfw_Pp-9Qm^dm56n}uAZwalF#~Yw;&y%xp~G)dWUdB)~t};cYi>REfloGD`Z1m>(tF-N*p1?Qx5cQL&?sgKK2ItI0F)jN;+ zXq>J0Ftyt2{pWM2eZ>FU8E@R(9Qz0K?xnu9_Py0U_J>^7^j)U?sPBdU_BPsk^xw{S zPv>8Kwx_eM-l}v?*4lou(SN&Mdyn?kd$RgCx6hYFZ`Nl>`KodR=j3%KH)H$gU30y^ zf7Ua5-M5_1wWabs_}^~99XzHN*Ry@SZ)b3B%>8Y%N9WzvoCjO$HtO5m==w(K+EhP2 z()Fs=L5%(9bK}B`nw9_EF+Gee_|ikow*1eJb9)Qkex$jz!#>d*we~gfAkOxE|Hs$K zWnOBI-}kt7?sP$OYY%e8TqiVR?XCKE)hjr|p3*&CpJ9u0hNYwXq5si6-M*^qduFo* z|L!VqwXOmy<(2>QGs%{BG^<>o&!XyccR@XBYn`iSjnCy({?0L&=qOre*pL6s*np1E z+IhxoeP&aiiL2;7s@J>mie}~A7#lpV8EdZ`bh~|dl|H=!t>=F1F?|M<#~#rmsZ;Z{SnGW^SI^h^w{O;ox_|4(+kf7^bGeQ7_OJ!C!FWbj{UGCq*^(tdHZ~Z;`)Tve;EL<;OZ->TS6Ny^7A!{?^siw`uzJ=h%Or*AeZlI!m9a-H>l%>ofETY1XxO z>F17F?d@yt(N=nOQ$GUQ*NAI*z40jLeK@U>jW_oQ=&wWKlvOdm#*6X@@ti4s~NY-QRv-9WroU&eJQ@#Fct;cg&+RK0a zZ}+l&Z+(fY<9h7na(eAk-`d4`y}Qtb={3^gIwR___KbF4dv1E?uymer^&8E-_3GSa z?(xXHtDo-XzCpdSo|(1BO3m#qp!etXt*xOe!>YO3z8?IAM@st@{5)U9r+&<#%mEXOn*_QUP-+bNX*7iYr>i($LTL$&&YFm$Wpgy+X zi+V*{Z}S0q$Ff%5%YJ?0upQ`S84BM`_;`#Gn?a**4y@fSuc%!=YJVH?DpoW{GeWo z*4O7=#(u%r%{)8bt?S?N=j}UV$ExS84a9&&}#*zuWZQ zuhxEywVxaRckfe<%Pj@`h+zajN{p1bJSo_{j zNB6jVyX|)|?W^e0dOuS?zrCr~@~!u8jJ1#CzuVIGdPnG)xPD*TUOBx}s?UgFw5_fi z_1L32pZ}ZpNA2g79j2P&@_*+z@22P9dVi<2Rkg0>o$EeYrn^7f4b1V2S55ib2g>>vVCsU_u#*~FNgIh_J4D)PU_kI#k|cw=ChH1>Urkn z|IvQ5UxTz?>9_Z?UHu;S-~+lQ)>pXCUEJ*3b9znvdcNHY^%Kf^>+jK(u-3|46BmD3 zKmX2sf6{fgt`2BMz23~zoAvJJwZJ^RrmkNFrPo7?T$G-tSN&J>$pEGlyu-E4Z7hlY^Zna?wYiP1Aj{>I+ppZ#<~7{@H#b}Qj;^Qm*5A)F;zl~J>d*hu zr^NM{xFl!YzkB4}ADUIttGW7G*WQozRWJQqqdRZaf4-`;w|*V=BmG2Tl{`0n;{T&VOJ!)@Ddw<)n z`Zm=4QLnPocyryI(p9e>dq-QkTfViE7SPXjvf7XRBRDP_qw{!;bP)PKxwZDzx6j?R z^q8sN*QVb)sE^efT!-$~`@#A((!ZPgf9Dvqk8b<*!BIS~UW)d-sktxzALi}>N|tS1 z^Ztx?Mx|BDwr$(CZQJ(R%eHOXwr$(C`=438R^EHZ?mf=^?ipYA?eRS4*Hyb}Wo1Ub zF(Wdv>KV_Oj)D8{Z$HLX+&l2u;7U69Zv=mi;H?j?{`YWnGBohD!6T8Qf7Xfr{9S@y zJB1bU_`r7wu2q7MwEs9SY_`w+vu$Kxj}x|)Jp1$W{`0@)-0@`2hu2|G_=UKR>5~E2E5mW?1m-{)s=+EO?&=pYg#hEcn^r{e1DyIyQK( zMfh`EvGva*{m=J7Esoj4?lu2$gWy^q(=^s_f$#T)z1rn~{Of~z0cCi~dMKdaclo>97rgI- zd(Pm;f{$0ER|L1FznjX<%K!d~Mx5OW zd%nf}^Q_JM=VSh}oMAt&|14*ig6B(4^C(0M{Asf7v$$!5j4SdYM0u7tR{^PQ+ubt0Vgemw_2G24DpDBO0|NXoD z^nX~%{8{IupZWXWcscR++I!tkuHFyas^Ih7e;q}}z{mb>7B}MDde~fx|3|@RO7K4L zZ^d~6-zCPMS05t(Syi>-Y(?02>BxN$rdKO|Z%zI^N%6qf&gb=ovH|_8#|FW(N3qeDy+Z?9)@IuA`*~!&$CbE&uei@SiYWnA<>)DFrF!zuF~rM1=WVzCc~-Rhvs$w8+Hu$v zNWk|C``RRbjxYcDC;C@kAMC{XIqctf`{yj@&t1Pi_V2!?&3`r8{J_28UjZx)C^`4g z>VW)L!fgC6`oDDxf~&~js?`7L*Y?2e^Is!!D4>6S6#nyTd}jk+5&SOxwfE(~$NaCM z-TN25pMRwg_TTwmMR^kV3jccJRY3k%QN9M`Kkg3u@BFW#gvr01+7|iuwZZeY!Dn7@ zpYqSEui#4S|NmD4?Vc*Yx?loiJ76iZZzvtZRzvn0S zpTWo;xPAU}n}q`M-@9c4@}JwR5s?4!XdICL@n{#2|MBP<&_C}(gZHlgEJ@h?;yB>i`E1_5vbFnzCkc|979& z2p+lq_s?MX&m#}8;8aorPZT9ilk#$H-fWZf4> zp+(iw{c&wtR2@AK*QG_((}Qq*T2uo)1UICG-^w%$H>O23(IaqEnnzrZ!p&(>E%X@N zl4gt2<8W(QR2w}3x1~k3)01#}T2u!;1$U%Hb<)#tXIfMjJp*^8MRn7&aCcf%4?PF> zq($}8^KfrkR3E(n_oYSk(~EF_TGRl&1P`P|{iT=TLA0pBdIcUriyEp|;bF9>;d%`o zL5mux*WppL@Y|?1;4!qQv3e68M~fP-x8Mo1sEM4I;yshJsL6T^M0sDuu;~Q_`YRS==}^Eh>%0 ze|9-7&Cg;9#p!8L87$#(Mp{%ROGKQR7L~;k8E2(MWwS)Z*=bQZEYWdJT2wAeOq`n* zmB$hr=cPsEv&6;uX;B3%@o_;~R8dPpT#Ob~+>#iVphcCmB*mp@QKc=(aT!`vSxZV> zjuutXk{VZ{MOC(>#Z_ogRW0dpHCj}4OGaFS7FFAl8P}mj)wg8D4QTczmh89@&9-65 ziJQ@)np^y@?Y5vrwY22Lt!PoLE%|X9T2xz0LEMh!uVPsW;|?@?B1=)+h32nYS&HKx zw5XnzlDHSm^W9P!_osQjTgu{rG|zEMc|3&XIc}+lhtWL8EtT;In&-8pDjq}gytY)w z<7l4OmYR41&GXt)8&9HnUR&zoDKyV(OMN_zX8X4^#4~7~*Otb37R~e8(iG33d0tzZ z<9RgCYfDSKfaZB^X^j`rJg+Tn@e-QnwWU2?M)SP3bi^xYp4XPncoogw&C(UGr`fw% zy5o&B&p}I1yp3jGX6cQ0(CoP^eeqtJJ(s0F-cPfivJAvWX!cW=ZL(2^Oh-Ma9X5lBasHc`W_!%wgC2#-W-A%Np*OmqN4K3=eWf6Wyi+XQa zfCave5k_NUejSkt0R>n0pR^KNqM z7Hp+O*{s{JofhS=?!Zo3l*_scyJ_LK2=2k5w5V{_eKheFe46=YJ% zduvs^i)Jltt&aE5tnIBe@jjY$k+n8HK(ms!*2PC@R`S;R_&Ci<-r5kKq?wb}#`rAF zoU}H@=V|7owK={>i@IWMiLcVkMr&()i)J=j+u}Pk^U&HJKcJb1){giQ%{;Vr#!qP0 zKi01J1f%+_o{;LyPj-#$g{VD%3UshoePBv`xa1XpTp0 zQ*acT`DUAjW75nw+YB6=78S=f3&*8JCA7`KiD*%YZS!yvT2xZo0-TH%mE5)nr=Ufp zv@OA@Xy%x08BR|#$80NbMw&ThTZJ>z%rV;s zZ41s%GrMfta6y{cW!r%Z)2x|oyKqsOIcD2~i_@Y?+4kYmG;_>$0GFkiW41%MJk1=l z9l;f8=9ujmu1qt>Y$tG4nmJ}Wg{#xdG20njlV*0=&f&T=^U8JsH>5d^vt7cCY37yf z3T{p_uWZ+FOPYCQyMbHN%qZI}+@5AVX1jyC&>V}|?%|#^v&i-U_okUewnw-x&3erC z1P`Q{MYd;n5X~&Iy}(0gW|8d`9!4{ZY;W)gnptFfhey%OAKM2!j%ICU`-CUZ%p%(t zJc(u&*}mZ^G_%O|15cxwMYdmf2F)z88Jbx{GmC5*&!d?|wh+94W)|73coEHd%x1?+ zXl9YkiC56fBAXkpqFIC4ym&p$8q5}oH`1)ZY~k@XnmJ>OhamJnZ{MP0Nd#+PVOS8Yl0 zHJbI9EjhkHGiPim@g15qm@PHFM>BJ5Y4HP^nPW?jAJNPlTSokZW({V`jGxiWA6r)Z zf@c2Mvg21Y^T(DGzoD5ww%qs~&3eq17k{9cMYjC-6U{8L6~td?W|6Hh{zkJlvlYcZ zXl9YUI5ue3WA>6*)66A%X&gc`m+WP+m1Zv4%VRsuddyxCJ88~`*ehc%&3epU6^GKS z!R*y>M4C02y(W%Kb6jb!jib}dD0^KTlV(QQ>*Lt8s5th9I4;c^%-$Hsr&)K|o8rVY z>n?k9oRntWWp9a-)2zGft#N9ab(g&@PD?Yd?Co)Snt5gKh%?g6D|=_0nPy(uyW*@g z^UB^GXQ!E0_MSK=&AQ9p8|S7)<+1n0d1+>sy+6)RGrQ~qaY34SWgmo#(#$LS5L}#Q z-DMw!OVZ3P`v_c`W?tDx;qo-|%032Hq?uRtakw(gys}TgRcYpxeG;xtv(~at!L@1T zm3~nBqnst|b9&SoA$LtGmbDBA3UxZuI%rW~C+?r}zmmnst|b9qvlA?y_&d-D&2YeG~3UGxzLUaBrHq zXWxeV(yYPkJ8*xRxo6*n2hq$u`yM=mX71Vd;bAm$&wc=ppqYF2LwFR;8q9tKkD-}+ z_G5Sg&D^t}z>{d^p8XV_LNoX5XYe$dxo1CzXV4sn+ArWaG;_~>3D2XMd-f}M0nOaA zU&D)N=AQiqUP3eX?6>d=nz?7cgICe4yX^PyI+}Ht{Q=%Uv+lA#!kcJjp#2HnMzij+ zKf^m{=Ar!s-bFJ5?XU1Ynzfew4L(3~Olp6JkI>9R`v-iCW(L|n;Zrm-(EbIVp+%jw zf5Yc!=Ar!uzCeq*Z2yI?(9A=-VKNVC=Am8V8#MFK9)j=C%tN~s-=mp;qfP$`DTxZztGG#du05LX1>{@;vY2YE_-zR zi)Pk2Vq$}4);VHhO*88pad8OEtaHT2R+?GoNQmt;v(AwiJ86zR9Z9j9X4W~9<4~Go zPe)1|o@VYjQsam;bI*|$N2WRUbfm{oX=b1!BaTip109)hOq#jp$cp3A9B(?ZqX;;4>` z(40?m)WpST&Y?MK<5D!|&>VGf8JhExj{3L)%{eqjLtKgG9Gassu0nGT&CwKBqdAA> zXpU>pqG~!?;#xH4(;TgF9h&oLj<&b~&G|G(d)$Z?)!5MyH=#MV=ID%@(VSazbj2-b z&aFAR<5o21)*L-?8=7-#j^4N(&3tq8#hq#9o1;JON;BUa195kn`Q{jed(zA|#}M3` zW~MoY;r=x1I>!h+kY>I)M&Us;^UW~^522ZFj&XPx&3toAz$0kpn`06lMKj+VQ}7s? zHJ)P{9!E3l95e6)npx+Vg(uO>H^&@2jb<(9n1^T4%s0mZJcnk!ITqo0H1o}|1TUbO zZ;oYn5zTyatiVfXjyD~v@G_cN=U9VR(9Al=I=qVJc+;@~uc4WHj!k$S&D?Wr!5e7i zo?{!{MDr?=V+Y<&^D2^K7v4$pDw1Ol-c55Z&an^gr8yVpIDq%lyo%&Fgb&gjZ#s_P zqcq2xj$`;Z&GDw=1U^Y~yy-ZF&(a)kI?mwpG{>8cbNC|7c{#@ge3|Ch({Tx3rA1wH zT*23AQ8ygd@J(9OEyoRfn-+D)aSPw2Mcs4U!S`uV4;=UKLt4}$#{>MB7WKsO2tTDo zJ##$4&uLyIbUeeaY38Kk1%6A5dgpkB-_xQ#INsoow5U&xcla|c>Wkw8{z{Ab=Jx_+)(Hz@4CA}p(acO| zW?YD7W;(OtA~df%IJ4stG&9qg6PKcyna%nr0p7tcu&ytOK3ZaYvfj=&Xsm(#%F@ZQPw^HahF#o;0)3Ss(YNS^GH~;=VL< z(%BgIr+IDH*%S|^MGbK_$3tmR!<;Sga9Y#|XKOr?7B$M*7LTSyjd8ZeV`*lfvm>5F zv)*%d##3nKp|dNVMzh{?cE>YlW}~wwo<%bcoxSlqntAB#ix<$$LuY@yh-Mx-2jV3( z^Uyg6FQb`<&LMaO&8zCpVR$XgF|Tt3UQct(>l}qQ(!8qf9D_I0ysGXThquzqL+1p% zon{6)C*j>RGtfB&@1>c6&S`i*%?xzTzz1nwNq5e|hiT@aa}GXAGY_5f@Nt@X=v;tL z(xOf|7va-1v(dQ(pQSl2b}qx0Xx4+mg_x#!$~ z@6*gZ=O+A+X6@(Pf?v=a|2ntfS2V}J&K>v-&GD~u7k)=`{OjCI*{%oQ6qr*|Ql(Hz^lI^zp8YdKd}e3fP`=jx8H)2!uOJ@HMNwVbOrzD+a7Tz&C< znmOj`j~~*k-&_OnW12OaYY=`;i+bT2f?v|C-(17+Ynt_&YXp8vvwm}p!tZI;Z>}-; zBhC8FH4cBKS--g^;IB06H`gTmoo2qdreNisf(`dHEHpFCJp)^4=9qgHcF?TT+;gyp zW}W7qhkZ2bH1`4=j%J?D!f|NUX6`jO z9?cwcufqvwW|w;dPC_%g+?#MRn%U*vf>Y4UF84N^ie_H9ci?n1^UA#oXP}u^?majY z&Af8&!&zw7W9|bu8_m3OAHun4=9T*h&O@^Xb05R`XkK4%pTLD_&eyq5;i5F>>)dB> zahf^iK8H)v%r5r@T$W~bxi8`JG_%Wn1y`h5kGZem$~3dfeFImgnO*K%xF*f)a^JzV zX=a!E96WomESk?Uux1c#zb-%!^XpU9guW%chdF6hC zJJKAhy5Hf>G;1*T2i%=z4d(uYd(y1I++T2Snl+gF8}3W926O+w{b}Zy`xhQaGsoP9 zl{rQ;$J`nZp;?2uL-0tNHJICqN7G!7=eFbVw5SPgC!R<%yWDO(nPzsmy?83k>~e?V z=`^#;9Ujl5nO*LPcs9+|kM78LF3lWsN5%7LQH$Ks@nV{Fmpdk2K{LnP{&zjCqB#zA z$Hi-CW|})bUPm+2+zIgpnwjQKj5pEDGEIV8Sx>SIp)rckI>99cUF9iW{$bD;}bM<%$*aTqM2jv-1rR59CPQz z=V<1bJ3qcavo>=V#FuE+X70lH3eDQgT@+uVS(~|w;~O+yD|PwvzBu=#Xo6gox3?!p61x_w8TQQmh-g6Ce7UQ zw8a*hwVbCtw$aQ$Pe<&aML9j4v5RINdb(l{%{=sU$3B|1oTn#_NVAsn^v02C)^eV{ zI4aFr&eI=9r&-H+2I81BYdOy#9Gm8~49^f8pXU6YXBbXMbAHb=0w<<9r{@`klhd5j z^NhhMY0l|+#^Ka7=kz=ia9WykdY(x*Jl&UJI4jNT8lG7= zJI(7Fo;f%t&1)H+c{nf4YZ;yeI6uv68JsCE=n^SJu7fYnl+wh z6)sIP8$D}qd79biS%)jq%tp@!T$yH#=h=j-(#%QE7F?ZXPI|WCnl!V~vjf+qnT?)Z zxIWDq&$9#6_Tk1fYdp^Z+?-~O=Q)I1(yZ}3M{sMJHJ;}fZc8&KJtuHSnmOq? zg*($6w|dUtt~4{#a}IZ>S=V_k;6AjdzMf0CAI;U>o-23&&Fu1A!_#SIm*)mO({qcS z<+(%8_T1yMb7+nzJrD3anj=cjBfNm-h|==}FQPf3^gN@NcwW#;J+J5uo;Q4UBh7g# z&pUjc<{Y@^1O7pC4&3tz|Drhu?)`!dnseaZZ&=fu1NZ*GAvEW}y}z)P<{Y@!;CGSO zY0iOrHFnaR1NVktH_dU7*NVL~$3b2@4y8F)<8|U#G~1ZhjdRkxcINfs+%(&mHx%cm z*~Yx#aY34G%o`CGrrE~4k#SL)eX%zxE>5$Jd86afH2Y$2Ok9>`8}r7-6=}9HZ(LlN zW*hUy$5m;zF>gX#on{;JCdM^s_Ql?$xHio;=1q?4(`;kjl(-?yHs(!@8`GQ{@utO1 zX|^$Mdfbv`8}nwwt!a)OyqR%(nr+OR6?dfBuDscCSDNk0n-h1Z*%y0r36Z$&(T<~)hFGM+?pp2S-fPoX(a;;oLS(QMV;ns^q?R_(2g=g@4) z-nw`J&6ez~j~CHw$=-%|3C))5ZH$-E?4!L+@d}##vbQ;2L$hD@w#4gb_RHSZcmvJ8 z*xMFwq1hLE+v9CC`(kfLyn|+6?Cp$q(d>)8UGW~8eX+MY-bZtM;q8eJ(CnAJz40NM z{j#?&K0>o!_V&leX!gtAf%pW?zSuhmpP|_odxzk2H2Y%jFnob#U+f)$FVXCay`%6I zntic%48BIQFZPbZH)!_7-U;{?&GChI624D!eBqsfAJQCOc&FjVH0OuCGw@TIV-4>t z{G4WA?45&O((H@9^YCk$eX(}|eoM12_AbKjY4*k5CHN!F{@1$p;TSZ>Bfb+j4$bk1 z?-Y(lb3EcZgA>r4SMi<0iD-^Zd>3#Mnqw2+C7g`r*u-}Qr=U4D@m<5IXwIwnZs0UD z$0@#BI33M#iti52Ky#epyN5H;?0T%f4^8Jk8AX{lFDz zW~T2Ku1qsCeFncLv?|Ta^l4n3W={G-aBZ6Xvd@a^(#%Ys9oMIsnLa0ONHa5i{`X@x zrkR=SB$$~r`)FS%ZcZ~lec^FSn)&IAh+EU_qkWNaTbfzwi;COR%u-);+>vIM`eNd) zG_%wf8+WIfrM|ehC(SJN#mBvAW~nbB?n^UEeTi{@npx^giU-onPhWC8gl2yFQsQAW z^V63akDxgx<4cQ2(acg`dOU_^mijW{aWuy`zRY+c%`uKIE1paC1~3(9BO?e!Pfge)Tdj;}agMRRW1R}!zM zSu^-b>^vR~_%AInV5? ziTBf-TlUq)hiT3&`|9GOH0PFm_3?3<^U1!3_%zM=WM5-^mSzp(Yl_d)yw>JxjxW-@ z*5+%8FVmcp@wLX+Y0k;`+Txou=VW~C@ok#d*L)rEU7Gpn>x}Qy%uHWb{Fr8D`nuz% zG&9rJ6F;Y!nZDlmCC$wA^~JAgW~Q${eoJ$n**6e>qB+m(8-%~mT!-Krg1^zM!F1kth+)-VNJ8{3LS$(Xx3e!8AjhA?X@fvS1-r|kMd%V&3h&LIZ@h0Od z-fVown~k4%3kR-oX^9`7_ja0it6{<03>)5NIPiAEg|{0Xyuyw^y8_Zo@tJ|hXjTCslkqRF$(%=I|I(*Q` zfDam(@F61$K4fIWhm9Qgu#pQNG4kLeMm~JhD1eU|h43+>2tH;M!^e#h__$FDpD@bc z6Gl0F(x`w>8kO)VqY6G{RKur@8u+wP3!gFS;4?-&eAZ}y&l-*JIim?aXEej-jTZR4 z(F$KM+TaUDJABdTfG--I@Fk-QzGQU6myI6yve64)G5X*uMn8Pj7=W)Df8lG!V0_IO zimw~P@pWS)zF~~UH;l3PrZFDhG$!I(#$cgAD<&UlL78_)53<0bxJyv84lxA>#+9)C1G;!nnB{K@!=KO5ii zXX7XS!Vrv0OM>|7t6}1=h6R5!Z1|huz~2oQ{%&~i55tFl7~$|wBLe<7 zOviC#CXOq!aa@^;v+PZr|%vKYsgr8t2s#|dO5PAIE!LRpIw$$FefHsZvx87G#l zIEie>Nn|HZD!Xw~*^86Oew<7W;^cA|Czqo*g&fBzOMtO@f$$OkhKH|*s z8E2NSIE#G8S>z|q%I-fdEeYeRY+~YUV!_$PhO>(U=MWdpAs(Dld^o3s!?`2^&Lxp> zZi#|(OEjEEV&FUy3+I(MIIqOR`6L0(Cy8)=NrLlBGF(7X-~y5g7nC%(prpfvBm*ua znQ&prf(uJFTtsr9ab1~<>&bjvPZr|(vKZHwrMQ7C#|>m9ZYZm9 zLs^R($$H#KHsZ#z88?=#xQT4XO=Kr-D!Xx0*^8UWe%wqB;^uM~H zr*TU;i(AQg+)6Iu)^ZuQmaDjpT*qzXCT=UYaa*~I+sS?0P9Ea+@))<5r?`VW#~tJ) z?kKNuM|q1o$$Q*MKH|>u8F!YixQl$pUF0Y3%4zzzv?PkJx`~Oqi3N8T8}2R++(TTr zhj?&L@!_5l4)>A>xR*r2y(J3nEzxiviGlk_EZkS(;Jy+M_mc#;pCrQlB?;~?$?yP4 zfd@z`JW$f$fszjYB^mHvk_iuzEO?M)!-FLU9xS==5XpmwNIpDN3gDqq2oIAYc$gH! z!=(fsE~W4YDT7ByIXqG-;E_@ZkCG~QlvKl`r3M}?weT3JgU3icJXRXuvC;^SlO}ka zG{fVi1s*T0@C0dtCrCRyQ99s>(g{zJE_jl3!;_^4o-Doa6zPMfNIyJP2H>gk7oH}A z@iZBVr^|3WT}I*=G8)g2v3RD8$1`Ojo+Xp`ERV;X$*zh)S;O*kV+r@)-h!5|OaCoOgz&j-p-X&4+E{TSBOANeQV&Od!2k()1 zc&{YDdnFOxCrR)=Nrv}J3cO!Z;RBKeACPqTpk%-YB@;d*S@0prh7U^)d{}bfBa#On zk$m{56u?KN5I!bF@G&Wdk4p)BTuR{+QU;%pa`>cFz$c{=J|$J~DXE4}OAUNlYT+|d z2cMC8_^dR*XQdH7Cr$7%0~Q1HseRK6+f2k z__6H7Ph>ZKB75;u*^i&fLHtY(<7aXdKbPb9xtzo=Hhv>_@msl%-^xS$P9EcT@)W<9=lH$6#2@4}{vdDhM|qDw%18W3KI2dF z6@QlR__O@PUwG>U>wl3XtpCNtU&VsIi4A`f2mUTD{9QcwhxqUh35S151pHGX;a?I3 z|B`4}=@?k)SlG~Uu%Y8&(Fw5VL|E%2SnFii)G4s3Q{fPu28ZZ$*rGFFi_V0tIt#Yy zY}lrAV4Kc`?K%&(>wMUu3t)#Xgq^wwcIsl-rAuI!E`{B?40h{s*rO|8kFJEhx(fE{ zYS^c1V4tpqLv z3y!S2;V8NXj-q?vsJai1s{7$+dH{~5|H9GrU>sc!#WD1797B)9G4*I1Q;)^5^mrUg zPsFkHWE@*h#c}j>97oT@arJB*SI@=q^n4soFU0ZnVjN#D#R>FsoItO{3H556P_M;_ z^m?2~Z^Vi9W}H}W#YyyboJ8-$N%d}=RPV*f^nRR7AH>P^VVqna#VPc0oI;<(DfMZb zQlG`C^m&|0U&N{PWt>`H#cA|)oJQZoY4vTKR^P?x^nIL8Kg8+vW1L<;#ToQ-oI$_D z8TD(NQNP8R^n091f5e&fXPjAo#aZ-soJIe{S+z>a`d>>@*8keX*|Y^`*EXD8J8%x| z!a1}D=hQx&Q-{O3bOfABN5Z*v6r5W}!+CTJoJYsPd379|SI5KobOM}DC&Kx45}aQr z!v%B-TtKJ71$7!+P^ZI%bOu~VXTpVb7F<|o!$ousTtw%>MRgurROiFRbOBsU7sADL z5nNms!zFYHTtb(^C3P8GQkTP}bOl^WSHh)r6G8Oho``Gf$+)(jitFg+0FK zuAYnQ>G`;xUWn`K#kjs+iW}(VxPe}Y8|u}#pGimg-iRCP&A74Niks-|xQX70 zo9f-Tsosm5>HWBwK8Ty^!??LVid*R8xP?B6Tk6xer9O*W>GQaizKC1v%eb|^ireVx zxQ)Jv+v?l6t-g!f>HD~yeu&%a$GE+IiaY4%xPyL)JL=cCqkfA!>G!yk{)jv4&$zSx zio59VxQqUYyK0q;^}m*6tpBx%yJ-vVu5GxxcHkb`g?nfZ?x}sarw)gE=?J)&j)Z&b zD7d$dhWqFkxQ~v7`|3Ejua1ZN=>)i+PK5jGB)Gp$h6m^rcz{lY2kJC84;K4c<9-{N$Avzx(ste$ux)2_wi{N3p7#^-m;NiLy9-+(N5xN{6 zsVm@-x)L6xtKd<(8Xm1{;L*Ak9;55vF}fZes~h04x)C0yo8WP}86K}&;PJW@o}k;{ z3A!Dgs5{_^x)YwHyWmN>8=kCt;K{ldo}&BUDY_q?st4ey`Y$|95608Cyhh)~YxG^bR^P{K^+UW) zKgR3yQ@mb3$LsY=yg|Rl8}wVeQNPC<^+&u(f5w~iSG-w&$D8#}yhW?ztpBwnXZ^2D zyj5H9Hf_V(v;%L~F1%fP@DA<6J9Id_Q%Ar%btJq?N5Q*vG`w5Kz`J!Uyhq2udvrX! zS0})Gbt1e^C&Bx4GQ3}>!25M7d_bqc2Xs1oP-nmgbtZgBXTgVbHhfs;z=w4%d_?EL zM|3`XR2RTUbs>CA7s1DLF??K?z{hndd_tGOCv-V{QdhtybtQaCSHY)rHGEpvz^8RB zd`8#7XLLP$RyV+Bbt8OEH^Jw0GkjjRz~^-btimDcfpr*H+)(5 zz?XF|d`0)cS9CvoRS&>d^HUj<4&H_=X;hZ|Jf3rXG)P>WTQ4o{Vql zsra^@j&JLk_>P{9@94SsuAYzY>V^28UX1VQrTD&Hj_>Q0_<>%HALzCCpW%o3 z-i#mVt@yFtjvwot_=(<)pXj~#sosyD>Vx>1K8&B~qxiW#j-Tt3_=P@=U+A;=r9O{e z>Wlc5zKmb#tN69Pj$iAW_>I1e-{`yet-g=n>WBE9evIGgr}({oj^FE-_=A3pKj^pk zqkfM+>W}!7{)|8AulTe6jz8<4_={F4SpRED!TMjD_^YPYyPj)H&bXjqvsurgy|!;FIsGaeQ*0p=tV)@BmS4hNfN3T&FGaEO@( zhnVTG#ms;$W+rSkvtX;44cp8d*k)BfIVg<>@}-kuUQTI%o^Bd*21A?9UN-b!{N*ZIGouChc}zx@Mbd{!EAve zn5}R`vki`Dw!@Lk4mgt82}d@&;K*h-9L4N`qnN#LRI?9`YWBm?%mFx>`4^6E4#v^V zp*V&)9LF$6;+W=W9Mc?&W0~V|EOR1`ZBE9q&8aw!IUUC_XX3c#Y#i5|i{qK|aXfP& zj&Cl;@y(?;fw>$fFjwM)=4zbKT#FN#>v1A;BTj5?#)-|XIElF(Coy;8q~>m%)ZB}c znfq}v^B_)c9>&Sdqd0|m9H%f(;*{oToYFjtQ<>*+D)S;vZC=Ky&8s+#c^#)QZ{oD( zZJgG;i_@9+aXRxMPH#TO>CLA&gZUh1Fkj+~=4+hMe2X)g?{OycBhGAo#+l8pIE(om zXEA@`tforI`rnk4tp80DXEQB0yJ^GOO$W|lx^NEDgL9fboYM@4bD0rvE;AC&ZAQVl z&1g7}83X4rW8u7J9GusThx3^Ua6U5;&Tl5c`ORdwfSCdpFjL`zW*S`3Oot1Z8E_#p z6E19K!G+CixQLkp7cq0;qGldk)XayAnFVk$vk)$B7Qw~MVz`7^0+%pL;gV(nFDY&^DkW89E_`*Lvamr zIIdxi#5K*)xTZN4*D}ZBTINJt+nkJRn^SQeb2_eL&ct=i*|@Gb7uPfA<9g;oT;E)b z>zhk)19LfUV6Mas&DFS}xfVAv*W*U!M%>ukj2oLlO+%?ZWF9$6-jEQjIAfqV;#I8N6{}^% zN=`A|6%$x7efV3TBoiq?8k5#!Aem2Alau5H`9Pc@N&QmPCYNv4v`K9JOr`T0msGL2jzDhk^QDMp%* zL1YwJKwgl1QQ0=4@rF1OpEMyI$XJp(x>6HKgcwT2AnC|oWGq=t;>YCslEGv=Sxe54 zE94cK7E7skv3bnMqd0twgv90hlOAL&SwS|CVK9EESlrK_ zOB$1YWGI0El{!S8kOH$?M@gZx7yP#4LNpjMg3?oa(adMe_ zB#8>~7k)`D(v|cjlgK`DjNBnniYQfy94F_=Qxc=7Qb|Z5vYyzBv2BocBx7-Dyd&R8XldpW zDNR}udl^1YhLGi?aap!0GLUQ{`^X&+|oB z7^G(dwh6L_oFG?7|Ax$5;%>qmCn-txrtBj~yk^Wsl8@M%vt5$cM77|1l1t;c`IYiEpTO@Tiz6U8x-Vvia_X{~i*7aomk&?Z5yvZZ- zid^lZ)I;)?RPM|6L^_ir{n)3H)%}?voC>;BsRH4K9Ui``EN**5lVF-gUNYvn>;7WN3va$YNPmXNXF63 zT~d+EAuGrh(sc~m9;rK)`AhneqT_hJkxwLKJbxRN+$C>Gt_ke>NF|bGBF}fylMEpf zNZCpJd&D=D$Bm>RugP~}o5p-2JIJu<%r;`1#kNe6kXW<1o#Z&VN*2xG`AH6u@N@b3 zNpezdKDUodBJ;>9vUP#~ufzKPjw{d4g*>h#I~lu#?U$rn%J(Lv&c}1R+_awn?z8A?s_L6htJ}I(?{SK)^=I!S`B*PByvy){c{6X$>lAK&7w@J}M zY(u0j34fT+ks(KTE|OM9nTKRFnRATCg*+s0$xpKNIQwN1>oof%l8Zbz!}E?LJIg+e zx#B;29E^vFuG_vj@bBTN=<|Xb2a-7^F!>;n*kY(h>HTD4{-F3b{DMmgJ*A4b1 zx0vgs4rzRw`;;svo5_CC=MLKx$$g)F2dPa`J>h;M?MZJkjAVMsOdx%q^K+9qWcUm2 zL(<_T^Nx%s--+!N>o2m093hEbbK6KRGKx$ii%5kxtSiVn;&{t*m6RnlNtE|Imq^YJ ze4IS~$o)WUpZH&5e&+rlJIDbt?hAkAkre#O_aw8)QnH>z{l>OS(vs`sE{Xh|ZJ4Ac zdwy~|NsV9pReDm;;2l7uA=yLxzxDnO>2C5a7_yrjCznb85Z;|nPFi{Q1$jw6*bIJq ztikV0U~>R6=rtJR|*_{@=1>s1^KG(H-OjN#*5hNFg$nEG1jXcmCp^Bh=t3 zf8M=BsuD9C@2)0eA{c58Swrsf7n@#_#Qf#X^dvWVN{q<7tCKV(9mzp*mfR#$qVn}5 zLo|M)4e1@7ckz%}q#l0_w+&fD){$MLSu8{KC7Jb zzd7vxFaP`F{{Lyg$E!{Ve&9cTt|OoG&$r+Ir+lLcfUSwt3-C1fe_|BZ*`WCdACR*}_Y4OvV4 zf74+-@&7%CjfUpk1DbaYXx=TLd6$6Z-2s|+1!&$4pm`U7=IVdVRsWi8O>>pM=IVaU zRsEW)`88MZYp&kcT(z&cT3>UFuemy3b5*{{)%Ye?;hS82Z*tYW$#!aTmA%Q;^(I%< zn_NvF!d3JkTsb#qQwhbq80iJGffi$yMr3u1gLFrfFV{FYp2)_&{qPJWVO4Y1#&wG|i)-Ev21g zCdo9DnPFy<61evwq8F8msE8w?BH|0Uh>ECKK~Yo$u_7RP0TB@ec?pP!i2T3x?S0<+ z%#{1j?>AreS!?ab+3&sf+WR!Ydb|l%<4v#@Z-SNhVpxYS7OQYrgD-{^_+nUpFGgp+ z7}nm+u<~w(b$7E>i(egn_4vi`Yp8C4wRQ`vv|C`E-2$uZ7Fc7qzzVws*4Hhtx^98B zbqlPlTVP$?0;}p4SW~yain;~X(=D)?Zh^IQ3#_DDU>)5GtLRo(L$|^Tx)s*Xt+0A- zwGP4W4fq|3-y88e48OzidlP*B*;ReTt%i4TJn@nNtYJ`7gFhrwF-a99Z+4(s5)Ut1 z>h@i*wtW|@Y`b7x+XbuIHL#{#11s8YSkHFDYPK8JvTI=_yB5~5Yhe}J18dkGSi$zd z`n3mEuRXAK?SYkR53E~zVAa|KYt|lEvG%}vbsel$*TGtK9jsK>!8&yvtWwv(8g(74 zP}jlwbRDct*TLF!9jr{(!@6`mtV-9znshy^NY}%9bUmy_*TY(LJ*-66!#Z>WtU@=y z8gv7!KsUhpa|5hCH^AC+1FSqZz`An-tU7yP&Djep&R$q=o(QYW6Jf1+BCIq|f_3Ie zVw(wT%#EU~Sn4E6YAuSN6fGvJcjjeXyeJgY{$|tS0+lE!hVv$v#*| z_Q5K$57v-VQttCE5m+R7xu%dupich{jehJhxK4TtOomGE!Yn$ z!G2f=_QNW06RZITU_wYM48 zdV{di8-#V$*W$)eXU#ZU|O%L$ID3g4Ns* ztmTGaB{u}?xFJ}@4Z#|22v%@IuznkY)!PuP-G*T0HU#UoAy~By!J2IdR%}DCUK@hd z+7PVOhG3;O1naaRSfvfY8f^$xXhX0*8-mr@Fs#jnVP!T9>#|{3l?}t1Y#3H#!>}G3 zhSk_Gti^_5B{mG}uwht*4Z|927*=4zu>Kl`)z`39gTU0XwYpfBm!h-eH7Fb=4!rE#SR#v01t{R0^)hMi~Mqx!Y3SHoE3A&T!rEvnbgo-rU9=TeMcZIav<+57+h9Gk z4OT^ zIR#cUJ77Jt16DITU@fx)Rx&$a9kT;gF*{%lvjbKzJ7E2?16D6PVC`}$tXxiob<3%+ zYB?3wET_VXRzQ(>)gsPIIKb9umXw0`Xdgjk2tJ7;;{0FLth<-RYx4w z9AmKJ7=!i37_2tNV68C*D~&N&XN^jM=*W|>a!A6uAqlI7 zB&-=GV8t*2>xBteElj{#VFFeP6R=L0fK|dItPv(*g)jx{gDF@Yq+o53f|WrE)&(h8 z6{KKIkb)IK3f2QDSPi6LEs%nhKnm6YDOd%hU=5Ih6~J!n{_n=F|8DH|@5V0wZtU*w z#;*Qu?B?&rF8*%p-tWe){ch~m@5V0uZtTwQ#;*J{cH^h93qOtB_i609Ph+=z8oTV% z*j=B-uKF}~)2FeEK8@Y;Y3!O$W4C-7yX4c@9iPUo_%wFIr?Cq@jot5Q?0QdQw|g49 z+|$_Ip2n{BG{QimGOZfc@znAf|YSY;5O=FjL2D`g6RxN&Y_|@YV z!><9q1+^LM(q^zbo58MZ2D`Bt?80WS`bUu4)#$safozX0dyk z#ja@(lxyOlZYQs%HbnZvGRvg+;lEyeF0_$|Y4IeshfTZ!M1_#IU{QFSza$KZD?e#hbW zPW(FYTZP~8_^qy;tU3X|cj4EC-x~b7@mq^u4}R_5xZvM*N0y} zew*+cz;82tgZN>Ot!fy*5&X8`H;UiMwY#gf;5}Uuyj~a4Y82Sc_t|YFSCl6GgHa%Y`n)CwM%t6Z0Oy zIIs`%3kmZ=;#Yt>FtXCkVufp+ z54_6yU*L6Cd!5L<0XT0RMchEjC~*RKzBLa#$NDhwOTeqF8-bnHFMxZkXNe2zvEIaY z8wCe|oz@s|uQgA~$B5Sev(}Bk+wes>!G$r)x*J~^6U+d!)_(wR!&kI~@+IPpz{Tg5= z?$w7rxT=qs03K3x0qK{K@@-P?1R@WCM^qiqD7X}ORMnZlEbb*1%BM;B2Cx&i?*gkH zC0dJ6rd3A(J8_??(1%IM0<*X~6x!mdZxL?=j#Rz6N$7_IPpUc&I8rqLL{0*?SG|w; zDdM%jc-60flT|MOXQ~dwQln6H0&xp)zUpk^r+}T-SAg5Aenh+v7_WL3I9au@S^ORX zoUd9%90g`^0}@KS>Qds@i9Z6KU-d6wsp^;()S{{!@T#gSh~EWXSGAy3@L*updI#{F zsx`zB;Q3Wkz*5zjz{{#W1iY^53&igN_g4Lhhy@2$hnt8Kz}u=m0_?Od2i{TjW8(d! zJVkeXyT}{@ytgU?MEwCiT=h-jPf7VT-H!qBjlLzQEmdy^K3z3H_cZXus&519s-LF2 zp#wFfdL^*6dJEmB0S~CY5qMbj^K>tM70SK(INAo4*Y5fX#X7vlime-2=O~A9O2Z=Ml zPU|evKTf=w^jnAz0khUK!1Jn)c%9&C;%4AQ)t@0=2h3VGlYS5J&!kr!ATqB3UQ*pj z90Yb+3A)b&URM1@x^EzTAKiZ>z3M>Jit2X~`+!;N6uPs(>#Dy?_de2pOZU^HH@qHo zpn4_nrs^$pp9Z|G`bOa0)z8zt_}}E+-$Gmqyr_CRF%Rst-V409`b)$ciFX4}s{RYH z@gVF9RWAkpsd_W;r0O*BT;RRcp8@Wzz8-i}^)G;(*6&Gwf!K1e_fIKMAa>xs#MX6RX}J@=JiXRUZMo zyLvS+YxR-7i&y}@Sp8qXx|)lDBh_Ce{)G5j;&Z^;suvxKouisg;BhrK1AA&-0%ELr zBhp{9g4j#k1>9V79`TF7PV3vG?<4+^^s2)|=0IT9Is&-8CPCao{2(w{a}V)JVAgtx z^p?X#@=##1=AFdN!0DPI@jPIs^=Z1l0X(hdLE=lmJv9fv2|E!r-N18dCV(HP`2g^O zn*SmG5O`6|ABiskFTt4_)XAD|Am+5dPV02wf7Dz6JO}4HB!nA)7vO}2;A231Rp~8) zuLWL$Qw9>kdf=B}=a0ReniBC!VAi^x?wD}{ckc7&J%9#(q;@h;#Iwa*h5FO}Rln79JCymkb5OznGsN7P`1Yk-(P0HQ-`vf4X{j{`fcf05pCv`D@UcvF*|%fSuMAz`eCUBR&MYsdn+PLO&R|xAqv|O|^r-tQ7~|R{Kff)xf)J|3UhK z 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

Q%6n&G;IOv;f1gL7_7BSh3YE1S6p`#NNVzTd@ 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%0AU1r%4kN71cDcqN15Ku_~K3 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%0AqqFZvq0dpxLwCB@KKso{hN^0Ax)3 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ôQ(0?ZAvd% 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 p+#2I%r)?JAYv!iXO-D=uMg4~lzO}T$tKZWTmW literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll new file mode 100644 index 0000000000000000000000000000000000000000..612aa9b9ee9496e1a7ecdde3b71b5fa6e0c33c08 GIT binary patch literal 132488 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 ywLu?r*r5Pi361#{! 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
7dFL@VvRfc+9JL-`U8*0 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%0DT3e?iJxx!P)lTGR@K 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⩔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

W=`w)!A5!7RwmsX( z*_dSKXB)i?-On1fd$%`D+4S3+oEUxl^Y-yg!9T8%;NJ_#H=e8%{Cj4`KOEp6dB8vF zb@<0M0{rtU1_BcP)e0T|g2D;-=L%QnFI2Nhq44in8UJvAf8+uGOku=7KO;)5*b@G+ z+2LO&TxZgM$}t81UZipf|E#SkYykdwfP3dJR{a#9@bB3f|8RhR#xBD1zlt%n>pYKTeiTGzRXLM@uFIO4Czj9EhlJE~13IAxHKXlfQ;~xcE z{CmE(_4Qv%t(N1T8?27w-vXJTT#jK3|E!%ULk#|n46) z*B0CTet930OIE>u`CCjckxTsda%GAC`rl%DshmUnhaLVS-<%uU2=8gq02XtZ~T{19=d!^CO;fJbV(k_k9yrhms}Sh zKfg*KAdz3K(8(_-4CJ@yp-We|XZ|KNn-uDy%jahD!@)zBDL_4R`MgYiIC$uiJdmFS7$3Ss zs6M8xv`2me4_zX6){vGDUAo=Jh@&);pZk1A(oZBmi#bzMOMbb^2>F$RLX|{*$VlWz z`;edY9Vfp9GDEo>Lngoex0tM*DMJkTjSR7q-`0lM z#nuBIKN6sCF^%oIM1Hi8zr|Dz0(~U%V-xbTZ!uXYcA+S~#gxtG`L~$3XcgZH$lqdm zt6XBgcPU$VfA#Hh4zVA0*pGa3_UlTGupeb6u-`j^pvZpj4E8OtUs}WVUe(v-?0sYn zKL+ow;;tw3EVyDq4~^|)oloDPuC)Y|YuB*7TkZ&NbhEPl=hr`=>AR<@dVn|m;Z1AU z5FAhphfm+3yK*?ZA-{4ghPQKn4cq%AM`QH?vW6eMHEbA{pT47Z4Q~_Hu;pq6yjAAJ zQKfYN-rge-3EtQon!fAWsHg9Gj=Ixjrtdx|6-j4U!^WZ8$1DWQ8hjD67Oi39Lc|2y zhsihIrj!Y`|Hznyg9$eBfLYY*CfGPEJoEF4U*kq68&g>iz-kJ(ZywuD)1b`xx!a2@L(l4H+=`>P*SxrABPR{b}4(Hb@n zaPRzMs-FVX1l#j7X5nChjXYqM1sEsT5ISo}dzdw_h7Gy1hP0eubGwfb$6drM_xX;b zpNLr&b4HXFvvQRY%qjCe*HQc5q#L$J?mS}WnjUFA^vE4Y>{xq?HqtX!G(6k0WBz&a zjZY{&V#jRl1)Q+&RuB4|xJ-IhbA$YxeXriW?bz8q9R<`=OK($4hx-|Nh(5(Gqdr8g zbZu2P$QO2f^%)OSE$;d=x17>1!?=sbK&&CtzGv6k+oi~FlV|hpwRgy>cfeglA?ZKf zvvQdB?S=TK?GyBr;FUf4?Q8F}qW11K?r;BE@dV#?w5n0$hcn#_K$ri-`~d0Rf&B61&`qV_E$sEWpMbLs;@sg-y&=HF?fF) zca6ig9|{~MoECnOorD(mx6#{{835$3%N+rkj#t)SdV>Q3i{5sLn0C&vpEFFT^ltZ z_Z)Sn%K-9srNWPGyT8rZm}KYs+g^t5XARrESx!?neU_6GqmSR-KE5gV%{3DI{sH;M z7nOqFFUkg!Efa1W86wh{C2yK5l3mnZ}<6*q@Rf27IQ||7Qb_q5&SL( zg(?ZZk&*D5_W46+{WyM8Q270B{qdiFU)%cBw53+d@!Jhn$MJiC%up`Jkn#IH>LMKj zX?dfyGi8Xu?~x&P{NCCSyV!c5_p-e4y%Orn8^?BC!f#s0_+1VHeI)#5v%_x-#V!=W z@AuK0EpN=`-D~fc^*nobFPE(CYag&KjsKYAbpHE^T;jitK;Yn z@9$kS$H|2V$l6J*jkEL%$a+bJEF3@~Y2FG1kLuj_nZ17GqsN*+RxTOwJ+3!VY7RZ_Zd+oP-hOzdj zzOH3QkTv`mWGvh@V_9$oW1+DnDrYRzwUzyg^{uRm@TzpON_;4 z$5@?k9qUKQF@>=%ta6F5tgR`3fMF~TaPRzB)lUJ6v0k1T3kQrv9vI64jEsfQSwlL7 zv5-4!NK3|YyN?maU1Tix`HrNY$XFJ0=98AOa+MLrDhGusiLsE87>o8{EbGS^i-KaT zPiPinezdk{ji*-28Ose;#~EvZ%up`JkQwWf>LMKjX(G$onKHyM*2oY$V{L7SU2Hwj zmtrF8QxfVES!25{F%~Uk#wrJaJ`!WG*)f)dViyWA)~D&sCbF`5_u6M{U$+-h)gizs@0~(Q34hJ;kSB`@TXqS~7jounr!;jv5OpMC|8nu@I zv|OzKw91@Vsk9CN+GQjn0UDb_fY!B916t2fce)Iq{f1Qdv2FJ;IUAGgd>_-x(EY4o zyLTVcluf^n$%)a&KW`u36#U~F3I3f(zHw2d;NL4U{^0=s$OHaSufspC5#XO+F%XdO zuU6>z7ZgswKUcUqKS|9dg~Gr8$@qr@{38$eX9^?!`594a#g_1o%?|%M;X0EpC&v{0 zyS&OJ{Ij;EumSkz0q&ijtokWH;otve{KEnMkq7*<03-e(bk>kg!9V2A8qyN~-0ow< zQ5x~jeZC{ba&{?J)Jj(-$v@$Up}>yzP@S}n&v zH&`9VzXdWwxg5h7{#iRyh8X-C8Dhu3tqrk@tp~cozp-7H@Q)TU{*{A39|`~1?C{S* zu?t0kf7zVy@4R|WmrGW`e`j?3cLlk`e^*wP`0oPxmc@(p@9KI+_o>WW{@>s-JY9O6y@DL$@~}tkC15XCD`2lOC+;e(1F-ko5|Ln!%^}$9+Nfc#=cqef z2KKHd6|;t8+hC849_)D;x}P;{_h8SIO@}>Bj6Upn`}n579v4Jl?;7MArzi#XUYTJJ z2e3yTV2^qo>~W0%_WX*0fCPKBLWjMea02YP!qxdT)ofBI*n3rmJsiLud4N4r7-7%P zh*B%I1bb|Du-6IKnRInIroi5{R4&1uwKatVfISaz@BG@Tp8^!@y*k4l4q%Twz@7yd zVGp6RhI9(-Ay;4HR$9WI+kK2UN+ayK&vzvKMA);KGbpvNm#d7xUO6aKNw9~E1beg( z>{&k!dlYP8?{~DVZ-iTFwH)@`V09e!7RU_catvdzXYEWGVqkA%h#mH}HpDKr9_R}8 z#&%tTJzB`HR}KPwB-mrKgFOqyE))gqWpg#x_qp^=mg`pUWVvg4C(9+Oce1=Sy_4nZ z1Mg(Hf;jH#`WK#A;EGkS-j`JG;dVducjXf6-9XvG`>EHJbBOh@!+PYKvtCzfg!L#h zf%UEz1Vz@ney}gYbT?LgUCVAl*6`!BN9e(i+1jdz;K=UVu()fcv)~G*Lu1QpPH?De zEdvC1L%Act(ap;G=MIeEE_2fb_frvE@t6}Fx+{kh9P%s2!6dkwN{+_rW@HUNdiPT? zE>CdOUV`9qwSwR(bAqYTIzVtYl88ibYz`4z*G5fnJxAT?G6eT~Qjv6qHESHYea1q7 zzC4cZ3HMXE5W!ftAm6x-QW)zsnXz!dSmc4RsMj$T=PZonXD|X1W7P_sv4X-0jO7Yf z=eJa|Nue0)wVAPSz*yvgu}ooPEI(#Tt=JM{vDqhhGmIW9Y3!(aCxY8+%gvZuc?bxQmSCKHrh_ z6B)~5&V14`R<1I_SmmHlB{3E<5@XRmjAi{eV^L6y^?BV*o8Mg9v&K`a<&5P9tK*Ed zKxQbHW5|s41$9y0PqlWY3^9x~GQ`eUTN`2*TMzV!+)w?Yg!=u|v0axKixx6tm4iSZ ziLu!17|TMj3xyc#OY~;b)`lai!u`!>kopU$XK@z_J@8V-%q_murI@2 zf28`l#@(5$;m6>78t$6CEa-y0(B6_38fOivTZ_{edRxl?js2nAk;dqFW&O8qc3?M8 zRef-E8zEF|UVtal}A_|d~OjLTyhwU@xOT&=*g z%AAO)v<_g}og^Y*8k<9y*0oV%TF+5;x(ue>O)C1B#xdQ;Gz82Vd{Z!uYZ;jKC*&Kq zRSKrPK4TgVFpWH58udC%ikdDY*Hvpdqc)F9AFxG zz%)}BG0l(JQY*HEX>4|w)(O|K{>O4m!L)m*T*5SKYs%knFwFzpJO4A)PXP+k-k32B z2be}4FwFvtn1)b&`iYokF=xbSF)dda!L)Kv zsFE-Z841&9A561;9MdS+PKDiF+q1?~tL2#H2CL(kwm@bmmt)A7)?fB!?MxYBFl}Ur z9n-cp#4ffT=xQo#Y}X}BqlJuV|$vy z?32n>r2C%gL&ZnCXarO_oY9D@avV%Xdw}F%l!(M=Y&xTr?w{FqO9GO~PEqc$4sh$v4hW%A17W1Rz{nSG8G#gEtA22S%e__a74DfgYBnj;F#A zT{(D@FnM4!3oyP(7@_)lx6&S?4ZKMhx%yDJ((+BhZuc?bxQmSDKHrh_6B*57&V17{ zTCOs}Xyu?#B{3Q@5~I;RjAs2fqfzj|XKHff&?8s&=-p*j8aCsHm2)l|l6J|iOxB#4 z>h%$D@H7PRyta-akEoKv~n+1@JXd?-o18jSvAG8?V2~%I4b|KPN};q zzkS6k7f!tL(TZ2#lJDz&-mmm8a0#dB_O<=q__0^mvF)YelD{!7`E$9X{I8USdvw2{ zxuZAf-%gd&*OcWPViWAJ3Hj!1(v=!v6Ut0rlZOUDkxl+G*q33DhpWC$;J+bj_;K1J zv_tEAbhztzA`7mVCqiR82js+oy4DhiqkVVoU&|edgKk#VkGuH+%?jO7)dz_K!4)Pr zaiF_$I9MRRavV&sc!cC=tR6|$@S_J77#D#BKzUi64<}wDUHY~kx^35ySl6&#&YP^k zV#2#~>C~$gU{RUV-}urx02U8ZYY8ma9Gd*;+NdXgdXBo&WhQ_ARx0{n!J*p+3k2vZ z;OGuuvFN=LT!@(bc?|i+Unphr=dJuz+pVkLtii$L4|xC!>UEPpoU?$1pTP)7U{Nb{ zu%Lk6p>7htrrGtQ_Fqk-f8?T<=eoqz`QNEplBn6Aw;}P5jeT%1`$Hbc!X(DoA3tbI zvDgw>u-TDCr(6g7qvU93fBsc}>Zee~V^t?nhP7K$#-bPLda!%vk5l~=tY(7VPOuL$ zjKaZ85P6^s3pUOKA$r!3_9$cEMY_n8FlY*HP|9 zLP~QvY(hsD;vK3cz&hS@p|$U;zSB`Q?_T?Xta=w$VxvXh8vUBM4e7s;HT)Q4BiuC`S#Sj#p|K?)XCu_LmH{^UXSpLA(ap;GU2bteZ1hxB zA7mp0SES=?gzn1WY=r#EaWL8F-z7(5^<=V!A3Zk0xI7zCdkHqm)e1JM%n4IU>i`@5 zi$o+gVsnU%x;APy>N)C8mtmu)NJXEGICT4Lgn(ItZwec6A%cybPQLL3rLfUEGaKQ6 zjmQHVQLkeo&RN*V&tL>3HmVgm8&N=PWD+N^kxN{iKSR}$M6uDkG8^H5jmQHVnZ(FO ze$bX;u_ZQQvty%9xeoTH%CS{8dZy|mHnMi7vXKY7cm6EZPr-_f-ksS92W&(h*vNv7 zY=r1pLpp_xkUMKgOEz-5A5t8Ik&WEvJC%MS8(GYmD_SXBie_J ztRH713bt(YG;QlMx|UikXCpUQ9cQBjGDEo>!zde3WBzRG&)S^IMn2p}&!0n8KmEi; z@5yY012!TLY-Gco*@&Jq8@Y~hHzF{x5t|(wnE>m!V54k4m)M9aO~FQA5<5M@=8c{! zm)Ph9$^skdf1bC!T>rkM`6qq%Sk56f!VVjeZ_Y+tsS!4!%mg<2&mbtW(es0S88&*c z>gy8p60(LLgKUJmW+Mx(U?ViPB;;&_y4EtlMlX~*vJu^APU)5h#6~|<^+7g5a78-K zM(C~_&PK?u90!w){!4N+Rxc%M_|aQ5gmHN`qV^JOl&ckNRGAZ|l-2<@dXYpVHez## zjk-2!HtIR*PM2Y$mq|sRjW~4sY=nSWgKr8OaUp_@UO~R`Jf*PFd$~BDX7ffkU?cLt zM%3%rh;tS;@-r9#iH&N7&PG9DxFNM@+Q=2I&i_ZvCWS(y_o48KHf@9hG$IdZWC|l1 z`7v8+#g@>B%?^z^;X2m;TaFfu9?Kn~^_w1}5AW`J^dfvU8`A-DS&aoj~5 za-Z)=`iVGXF=v!$aVS?A!J%?csFH9983~7I9~`oN9ET_<9Qv_lALcLDwmx8Osnv2E za)Z@z99keVl*=(>9Quj6Xs3!kXcIct&Xgf$dT3;bebLa?hSetobn!(MMzeO=?;Le}sjt{du}tHWKhmjzw07us9WLZd$594t;_=xxgk z(AXR0jx5dV^_xvLhg2TCLDAEhwCT zX|8Z}{%$p!6bjQmh{9(Wrr`k7$OERC!iZ^p%$8cQB}`+p!?aGgj`erQ(PCPX zZ}2f6&&Mwtn`_Q4=1^4f=jJ@VTB1^Y6*_A%Ah#qQ%|4L>5Ub?dxw zJFn$+-WIg+TD#60?apGm*PYi;-CCU2(A!!9ueIyEKO%SJH9B5dzs+sLYs;_mUdU^N zP(haS8j(~E=QRSV9L{URRXGkOuYE#tG_0Q_YxuE#) zY6Y)V=7dhAb%57CDiMj-*mPbi*Lins2wIAD-aSX%X{w;?6ivqLzoL@k#c-!8Kk3Pz zIbzpQCm(*q`Oi7(RG!p)3^aInssJn$Ozx^>>1-td~A>WSO&)m76vlPle$19yu_az(v*Wc+xOV=h<*0aV(>33pQ=Pfl@VSm2Z$<(*N~BTjrQR+>&JPGf^p5am4?$;&u!(L z(T1ein(xYy`Roie;(x+e^UX2dU-NC_W~WcF<~y6GulYVcvC9`Lc45u;FLl4|FfmA2 z*TgAXtoc5zW0Wt*CFNgJHpnPnl4FQbu)`?in=?vRYJ^cJGl5aQ90Wy1`AV=yM)_*6 zFT*I`RDGS`-y&=HF~}&mYeuo43r0bE%OB1tsBSIJDCli11B~)@xg(>{@yhyR4vbOW zpz4EjN`z2>g)<6~R1Rkp0;(L&D8yAc4kn{~TXHn4-yv)G(OVXUad}3e_7aSes}+n= znG-IQ)&WNOhD0PrVRML4x;AP?={f37mtmCeN=2VhIHvoIf`D0rZwjMu9fMK6PrmU* zr7+4zGo#>uQOEyN?&gU}O~c`A(&u$S4+bpHXs^5k@Hoh$@Lu zkdYXL_F)w3#~Fo!kx{I4%P3aP8D&VCF-qmA8O3CYQ8>o?jAG+vr%%Bs*?g`s3a9J> zM)|Q^Vw9gN8)THT@W)X=8V#n8etU5Okk9s20@Wg&JOm-C_fAKWfek|ng5K6Lz$m|vJ2DC#udM&*wg)tia{TQUFbW}5 zVBw5HB$dM%g@7uDGYWB4j)Tc4+kV4_^?YOvKYEOUad}3e_7aSes}+n=nG-IQ)&WNO zrS^GZ6gGz#rE8;Rl%AvRbQwmOX|MDdg=4zUCu@YMKG0n`95Rq!ISwXd93eRxt0T!8e)JaCU|a+ln?E~G?HV#B zJUgGO6_8Px)8G5jIsh3Ll!ycwYz{51>Ds6l*Yq59r^_s^*(()&$l%cJLk0r$C318J z$XN93JQpGs*Bnj0afnhD*L<44YQ6><2a9XS17uK7xO5ep$mW~{GW-liK!S`~p+iPc z7$9TO8faIzIzL9uCWTsD^BENS8fY9Wt|1SQVG85o8b4-Bt=JM|u-QRICtSz+J~>** z7+V8bv#=(Lb@&FbVU|djx&{;#;1B-#j z<&isUNXrE^Zuc?bxQk%nKHrh_6T!k_?t?|HG6ELmpim`&1u_y?&^};c{Ww@qPz!4G z0**uHM`>FhOSaT%`GOiZSRIFq1u{dq976_;9qJ+-1L=Fg*3Oh6W*LKrme!umjjIoZDON@0%Wr?xcHPC14IkS_+VzcI=at<*Tb{LC%bH?gQjW8Bv zCNS2;f}qG)7Z3LDeL1gzzC^Gu!(NwBeO=>@BWw5(=YqO5(70>%vY-q0LVHVEXq+{u zZY@q@=xr?nGt)Fre)KR6Ogl_nl$d7iOc`P@ZDfcY)3!FmF18-%TYzcjmr%#Fv0axi zjTSPdm4iSZ3Del@FwH`-3xzQ4aC$RL%jVr{7m!u&MA~HC^RMas)?Bi-uU*i(v~|xf z(zL$zM%6~<|&$T`Gm*x@wt%{i?rHNt6>nZRjR41yx3 zof_+JHuV`o9&E(--xMYGv_y=X)Vrg#L-&N>k+h;0iydYRft4~l$G@t z-QnCJI)bV&%!!WJDu)vtAyy72IwGwc2b1VdmmCfBRmmEDte@}l1PC+k2 z_xd!j(*CD`W!%4oPXp7&mDFF4UnhkVv>HcjD0uBq_iHOM!vpcG#GV&+90@FIEO zMe23D$mIlH^ot7tCSF8EROr0ud%zS<;6+!cPXnv1q)@#0rOb;s;6?Jli>5I0qMs3^ zR&0qE+3a|+6RtDq>T*os#cQct;zes~3QWL@9-uxAtokWH@#2>=FXDg~$pbH1fRPsw zs!szeO$Wr;9C|<9vF(H-2d4Fqt4{+fEqT%H`6!LN=sw?(^b>i}V$Q79@?x$s!i(jg zP$lsqG7>M+KD=oCI4@GL<;CC8wmuDPsnv2`bc5A#UR)qEl*=)U@uIaeWr*R$ks)?o z+}aSk*m|HVUL4zXi5F=h^I|y&^pSXx&5jo>6uVFqyqL{3FJ4;rEAKAUc%M*^hd zmGzH9fXhE8w{T965GrhQ0wj{k;RHxPmBR^;xGKlNB*2?Vj)wL3$Qpk1o|D74hyXW# zPLA3&0Zw>ME>|lEurenYE3N5}{*?~t{U-=`j@Rd{B_a_Zn?vinx;D~st^M{l=@{Q9 z7C`H$J56?Fr>M7S&&mD1R0I$^?UA~M%{DluBLO+1p={RRi;T8teHYg;)_2{4eB(Mw zS>N>)0KuP=!@>G4^1x`+>(+O1dc$abvLhfdTCLC-Ehr3(w&*!ISGZ?>OEsGmYJJyN zQRvUf;b46id0;eC7}t0CF=j4#9&kQRq*LS(y$BSby z@|yd6r_xX4HH$g3PRnb#$_THO14Na?Ysg5vM*HxZ_2axo!MMK5O2cV9CuilH(T1ei z`mV~6`Roie;(x+;PL5-|zrM@H%}$?UeOET0YwNo>WsCJ)mlebKoYrmRlJYw$TX^sB zc5)7J3U)Y!d~;6eN{w&|WhQXS9|S>>Q*IyZkyGvv?8|V=-Fw7c z&s|y2#oQIz+gT{*6jZks=M?m|mcS|PO0YkaJ8}vgudHvs;{nZ7oviAE_Z|tMf(z#q zBB>nCDFjqGoKuLaavV%fxr^jzSno>K@S}I{5#u6G*?fr@wQEk9utY3ZD>$VxCuAtC z1DtXviAbEn=Fm)4*G4^4)pOLHE;CbgH>v1z3deMxQxKqU>!N$Yy+^KP%q9H^`NnOP zGMDsq{xJFyF&xY#kq1tpo>1#5b`9tBhEx1xM?m6~TA_1FP#8F6(GoFNsBi14*`!c& zN#8)BFA>ARToQTU6jK=IlKhx0wPH)0!e+-Qop2rNe=JAKDPv2-?xAvtO{}e&O%^Q? z^8od2UDZzkYA)%U1n5h|a4?rd9@xYJjB`l{)wgw(_Sj@#E(y8%wyx50F3IgaMjUsM zP2A@@l71qaSj>Gk$yG+!q#P8gBsM`tViVejO{^bh6AHF-Nq5(_zO8Gi)$+L{H&`9# zlm#+Fxg0}gmHxd)YiG(3GnX_n#6Fj_wIOz~^+4aEy!SY^>(X2jE#$eRauDbv%_Xtf z%_UhVcA+TdlCrs;OIq~KrC-y%M=n{#ToUW>A8l*I?kSfz?LNv9r}fw2-%HLRPQwnT zk#EjvU8xaHqs#WA-{4QOvt*w|P0a=wf@lI(SfUI?iNRY+m5M*_2)R5J4)SWH^Sr3$oK4fv|_8|)a`f4}2 zCqNb#A|UI*D=3@*S*~z(-l*B6 zP>}WQ3|TmUEb;(ZrZ7U5AG4)aYzea1>>#TXu4DZ{a!i4&4V6ofWo=FQ3(O5W4{+~% zuKFoJLDqLNWZ?j^$OB|qfDy6~I%`O$Ko)ZKaa^S(WVzkPh~q9omiv51(ocjei#Y>I zI{}odj6ha7C{#(1g^UDQv=3xiKMq+G6lCqu>Yn-k)3&}0Y^l|9$Z~_#amZRAGnC6Q zWXL)~U8G|mt;4r=rVKHVH8R8wSz8-o7h4bX9|2iMN~kaJ8ryXVvS=YgRyhdtksyoB z4zes1yHE(S_R^az@XF@hYx`t9uh!vn#oE4h6g}p3_>VEh`g6I&Sbwc-;au25@XJj=8V;q8euHTOkk{s20@Xr{xaC#_Vs*o@vnk?8TR@c)z>xd5o8TN2IsTLY0JR$Viw*`(T>&t(MTu$F&Xger(?*8aF>Px@>|*PIz8jc! zVF`6i8{2gW(`X@MS~&>xkuZ(T4$~|YyHE(zj-@xlv~1qJb`e?6vvv4fvbL{X)Vj2F z_^;MI%fB;D`v`B*jfVE z?Oy-D)AZr4&hSLJZb zBfQGtm`9YAV=?CKJo6&#>|KYPc=VoK>+e5$+kFnPy7v9D{TGvO&#wI!S9a7XC+|Vk z_f%y6C1f~h#kNn_x&9-WEZMVb?UM4WT}sK3J7;HJTKW7blA}R>Dp|vi-r{_Wdv>0A zsGjcFf4r)sKRJ4IebH6X60%H=2hlIT%~mY^ZrdD66Ucvv^1-0L#$K0 z!o26GJ53dooua)nZE4oi*rz*Ay!mWT`xpEyRz};Re0)9>`cAC2dyDc-(ey?6oGE>H zq!B-hB0Mfy@Wlm|1z*o3-*~)I7JU66!y^tBe31uuq+Yk+i%SUb=ob_OBzUY9Iy?r2 z0Uj4E_;Q7N=Fd{INud^e{V>BL4iky68n~S@j>LgsVcBlL;XRgnK-8X-w>Zf3ZYiALxugS*& zu8{{^vtT2xAzEKZRyqaOkgLx_D=l%&?LJ-{gAv!<=R1{tBCc7?8FgA*%T-2jtsEe# zBwRyA!Zq3l*Q_7MH44Tx`BoZCV@rKjiehW)CzlAx@Z@pE&byav9S;LRP`7PWv*w|hw zz=mL3XmPM1%+}&yLx8QN0Gpxttv9Q1#2jR-tbgs-iaB|Hi+}=~2U)|9^_yI*eE9^%<>$Aky#(guY6a$0=0qH&bpUhTA`uC5 z*c`%~u8kUVdXBo&WiaQR?9&DFTljn^^c7ic_vW`u(e(K(&Xhhp(TF~cu5=1Kae)P% z-b23eYNf!_Px))@4+`J_p2!0{QLlq1E+N2^Ur-Q`;Hg&V@DvnIfG1bDXZ~I_n-mJ3 z&PJg>D1ZZaA`kFn3L`xEnNVuQmf(raZhos1t~2Oea!i@udY{TAV6wKR0+R>0Z~lJO zPXP*;enx=)pa2eli97(41sH(|p|gf`3NRse){vIK`){g@d1>5w&K3x5jo|n%|;@Jik>A0)3?UEjGLPEepji6vg~jHlMfi zTU@b<`7NFkc&xGG2jmhveneSf$NqByAChy39kIiXF|Q<@)@J0cz3tgK(* zE(f$S?GCCwxH1jFfy4656}l^jlN<6Y$6|6j_a~@6DLERePmwkJ=q*6QxM+fE^M^61 zU6b2{hcR=tg4`-|f~e9uKyDwCh(vB|4lO|I+Nc+x^&EAl%Pc_qv{WRWKhG0X9J+nR zLcpxS7a42O`}(;Mu>kFJM^y#0|yuPL@zbcEqIc@3JE&Yb2 z-?a2wO4nYnYum1)_8+HakKB30&b8y&*m1;;waaSbq-)NO(wNe`R*KBOO}_DErAO?T zt)0VZ%eU9{Sznp7z-xp2oP8hPzU|oAzEn>wt*NEM{X9KHUv{RE#=1UJ!?>{PtIv)e z?fNsfoYF6Yxr-aZ7K3TmGNe41*_;Mb@m%vFO7tK1a`$K-UtIsfy8?_$rr@Du%FRaQr#JbpFUGmLYw<|Tmx|Er~y5A3iBJ2Jj*q345 zpQyh6rkq9A@MDm5ao4PC!4<5F#+Gb-G81*JWq@^mBzI(8x>;Gj*If^Ybsw+lgRG0- zid_9JExId*vo7*0$H8RXpGuC#>TI%xA3fH^xIF7pdkNOf)e6?F%n3V7>j3NiSRxYZ zvN^=MT^lv)_8fJm%dqaxq@vHd9J+nhMZm1VH-&Y%5W%{?B;WY1Qdsv_T(PgC6)v*| z2dqmTSeJSo>vGP*x_$;DAhB+(&{;PqoWQ!SaCLr;noSDDy4wzu!e?j^jJ~cb2dqmT zSl1Lr*7aky)QT;!E}I?ecEWY6|6Goib<@q*O+V88E7eKdYwb>fB5uZduzTlPCe#Ki z?mZvD`rIN8xR*R|uLT>q7t#7Yv(hQti(Gx%QEAD&Zujxx7>wNOKHsVI6S>!7&dk_y zZ>}=Jz2yK=C2=n@68F+R+-vH{;%H-o18tSvTe0uZnqIBZhjW*3hx8tz9E`L-7)8=kBGvUOV?P+1{vsfw#DN zZC^W?9{u@PcB@Nvb**K9w^rniyhS%F>(9U20rA%7RDF=Q z5M0rd^A@@*hw~QlE62g)t-~ZoV|9MAh95oN!nizdQF{sA%GC}&}O6ve`?Usnd zTWk*TR@X+&TRlhJ=`y@^xK#9ci$k~1TL_pn_@?j{7b19Tm3(8S6yBQg2i|!L2fRfd zc#C=+Z*k7TTYd&3An{hM(0MB;oWNVIaCN>%%_fE7t?ik&aKKySfwxRylFR9onKJfv&K`a<-FwvtK+=2KxQbHW5~R9MRif~mbEiwh~ce~A$H!{+7P?g zdY~J4>r@GK-WuC=iMMDW^Hw6J3(FmOi*8odKmErC#9K$+ zeF1MFxS}WLEp%57=Pl${j)Tct7n2-~)y2sge)MN)C8m*K5TNJXEwICT5Gg@9RuZwha5A%eFqO}?>DDZI6lKk&X@ z4hOtN9(ap-9dB{Y!drd@BOvist}inn&5(AUf1fVap4Z<)f# zTYk)zTCpYGVzc9|PPmTsOUlvm*4Vw=<5Vs&mbEqI4={}70q&h2ulgxKG1f|EEF3Tv zd0;FHFftZG^{r{8Qy2@m`VOnolCj+GW5jV68OwdXBk3nHmc^X;q-CsJWrVTHL7_@w zEMz3cqJ0?4`fLuRbg)J4fy*3Oh6 zhOtJ5*coeUL+oPff&L2^>nalJj5W6F5@XRqW~_1$=p!)}n;m0WD0ZO`W1UWK##q_B zd+n;SZpv7nOmkXKs^+w=E=FQb>(0vSIj!f)_Hz9Tb6Q-nwy#}{9-XmH)w32)Fvhy9 zTw<(~lqJTB&x4+>cJu{YIfobvJB&rXIb(IDMi`4S6Bz4qK~Q9@6N3E*-^=fOJ2BXw z^0%!$o&Ueox}P?>1>f$xg6iuUcM4gVvaigix`S(-@Idj^lpN22?p5(}=5b9865RqU2~; zPbF*k(Ze*1%VQd~m%y}Kt-!R(oQSEk4q)2J5|J>C%^^(d+Nd$D=cqef2Gg!26@5(O znC@d50%i@qDVWB!3{3ki@{Kj6VA^gN!KcM=fNA6b)2P>B8mBjy<|jJ>5~kG(9n*rs z37F;zSLeU2W|Kl;+94?P+mJZGH1dFHrZ8ffAG4)aYzfoY>@ckpu4DZ-TSr= zR3{;uwL9hSImqV0>XXN+pMn*#9h#912gpVqkj;XP$cAWr+g0flWJ9jLu&lI1Hn;nD zaSTRebD!^2`iaP9F=yOqku6slLAG*$sFIKk841~FA7rzB9N8!+WcwZc!Jc1P+xq6V zrB=(4%?(z^k!^v@P%g)ik?k7lqC_@pXUY(RY$HSL$hNg1cCqz9{}sq~O$l{m8{2gW z*=QjnTR8~yk&une4%sXeyJ!g6u0?N#Y}vef?b@<#{{FYirFVFIwPLo%h^1h*7b~xs z?JU`LmhbT3^0j^KcdbjUzuUd-7FrkfkH&1L%Oz&Jnli1wyT8`oeMRkR{oU1N(KlEv zy@sXNwDek*Ufa^&Rl4>oyj+6 z=dRQUJ5y!?JKrD(itK#DV2|v4qhNo^66}04)z=@M-y>`I5!tzWp9*eg=iPgDud}1l zt}%9Qzj2Co=i=S#&d#WAEvVB+9fKvXbNh|co5&s6nT}W1&-_!d^YY&~UC7RiNd>&l z&O}lov`<0J)a?zw9rkb0J33*F6%<=?y#k z$&P@;&b2~k=b$jK^P*SYxxzj3TdUcmP>%#3jzWK*3Jx9#CJ*dv3iqsCg8^He?O9F7 zY^jywII%OE9Xofzb*$e~4zUt{{Z60C&bLvW#Lm`k4OWX@f9JvOo8MOTQ?PnG_yPp$ z?^D6S^2VQ@N+*w0fJ|66LA1{u<$jSefW>t(p#SGIPvO!hw8^^dFi;2a+zRB+*(LL`;LIfZ~KhjR*XRgQzn zDR+|`4eKA1HT+n=ui)~`%V?kMKTe4o7jeqwkJZv-%_$QetIgF4PN~cZ8A|H_r`%a0 z5~r{^G{@JqQP1)99CfG5%<YQ@H*`5ogW46@Fahy1X&5lz#;X2m;M2>cjZ|qj=JykBTiM3U; z$)d+lJg|uc80Ym6I%`OKY%=gzEplfKX*sXwb{`{- zyT~T)^OK)`BAZyueKyHeM%bhr6sjaPK}KQ|+J{Z7A7>K^YF_V#nj4w_skUd0r&i17 z_1s`}oKqIa4CQhRnN@D2F3Nd5YiG(3Gp{!?#6GXLwIOz~^*}$GdA%D;sL$(-?YcCt zM+U(+{Exnyl$yP0)q-*sTU z+Y^n`?j@K0AgwD~xZZ8QoI{+39Zn`&9=pHl>tgl* zvW6dn>)mkIJZ8ZaJch=WwVb|C*IEYX>rA;LebLRz`uYFtfavS$sy;|x2(FOH=?mSJ z!yya#mE&MS)&nI+WAz}ih9A8fsTh}sENU+SS-DyPS(Q2QPH7#0tounsf-E+NAggPm zhOC~W?sOT*`hQZzT;&pESzA;70(0}!1Kd0R3)N2n3bOWQ$ie|+kq5}K03&1}bk>kgfh^?C z8qyN7-0owvW0fy_`Y$B-fG=IWw^ENf@V5Cd5wL+p^XwIOz~^*}!k$hw7u zI%JLQx&&FYkRhua1o}vj#byUt7K&Xc1X;JFH-oHf-o17!S`&+VxAA@sYxNG*ZpbPdwdrMkq)c0kB1$C~sEi*u4f1?VK#^`uu z{Ra0uAR2q1st?i_AyjPTG)5$q!)c6wD#tf|+{RTo4ko5ON;);Hk0xvQ(Ze*1%VQd~ zm%y}Kt-!R(oQSEk4q)0NBqCuNn?sn^wNYbQ&rx@}45mFsD*BklG2O>B1n8^6=$?RS zT+6_;$B}P5R4JIYFJl@GFpWH58udC%iqB3Y*Hvp zJ1S!u4ls>8V45jh4Rc|B%$8cQB}`+p!?aGgj`hEjV+yAIgUTgLv$m%E4F}Uaz`gUw zt9}Yln09o=G#p?WdB8LaFk%`)XAS8TOhfLhAuTb@?LI~vcM;Rv=R1;qBBoi)8F5-n z%T-1&tsE4pBuqm_!Zg|k)2tuIGztpSZmU1i^T%p?)_7{Q9MjxjbsWnjI zr!GoNvv#HoF_<v=X8#wBa}+8wP+n+tnU$7xTHOPuzv$`Yq(Xt(`P{~oG!b+52{ zmj5K@5T{{>)5tgHw64?$r%`4Cr#&$Uik$YOV9z|JFO&xRwx6_|rcaXwd*-@yVVLl| z!jn~B7r&>FHT*d3`C7D)K4se7%fwyto9&E(--xMYGp9A8X)UPsI9iJ{9uc&b0iydi zxg*gbWo7+IXPi4kM^F`pInfbY<#2E##LD5QM_iTTU=rO^B}W7OG_r;tz0a9qT%PEt zy#&$aY6a0%<^)%zb%5ypT_O_Eu{lI^T^lvg^&EAl%MjhurNR&T6K_59jU@Xl-HrFp zntByodu{BoDkuy^a^T zoWP5IaX~=h#af~BVo*4N7hU1%{Ml+YDHJbWDDxr?c#%BtqA85L=x0Q!6 z?yMm#dC~1YMjWM)7v1MOl71pDTFjZXT3*amMtHFt6sja%L`LF8+J_gdALm61w!HXE zZOR)({l}lE^i+LUX^W+jQzDSvPvA+)gKjj!=MeML5`R1(Hl^S71%1mIz=LbQN z6<-kSnf>&|)?m*JIh_grOZ9budnsANk2t5-t;5IdOqkc3C)RQxM?t>+l!O=@CMOZBBqhQaK#-2&i&68WLCKIG6V=cqeP6_lOAqQEOEIbKwFs`8Vb{Fx(m9d+{IN1Xqhqi!|ZcI^I#?AUhbr?k6Y zE)_}V&+}&^IHvoIhJaavFEZMqb@*JzScm^V~WKatlg=FB=RujMKuyjBhn zRT8fuBk>yT!)w-$^BM)?I(#b)r?C#-$~mJANwanMl_T@n8EVA;gs~2vW4yl(-^R^O zACb$wRKaJuviV$FhtDZnti%5^G0Z>Py~kI}CFO5Ymgcn1ulcMO>fcqxN9#7H^;$WH zI0ZYLLcTetbfrc(g)$R3<#j<&|YM{HwODtx_gz=`Q@#uuap06 zWDP$C=d^Iwb6U1Dia9M}YGTbk{b-%JC#~5NYLb1|s0faWGNm?UJJ-;2mTQKYF(> zF)l)#&6o01yGES}OZjuP0(B~LqK?u!fI4rHh=e+94o!A-ZPb%pJxAT?GLv2Jl!`v; zaIp7L2LbvDDY_@zzT|SqbkuvuH(sNZ>8OkGw>5o*R3@gQC=gJGdfjvsR{~JSuL}rB zs8cI+)Cmd$>MUBy?+RDv?^Ux&p{AoQj>7a6QaPB8qCh|$Q@9##U-~gyYQ>gNhs_Rk zI^jCj-z7(jI%7-u-=}g3Z>+5vZx$`(_W<|K->>>9Kut$of&kN3NabKUiUI*|EWkJ& zg;0HkRA~=y2A1+8S6?AjT24o~-N%UIF5->*d`Hqx#2bsbk2kr>2;P)~LY0I!$VhlY z`{0fB<9I_sO-CKFqT846*0#PvYN^%o=_of?9Y>u7GDEo>L&lv$)kS&x(%P9a#7swx z46#o~F|^Z%*u~ZZt@l!#u>UX#_1l+YyDm*f(L$b%DhGi+(sUG?-E@?NViyWQ-TCRw zZeM2e?zO{Z)g;n2@21;bnn${7nvZ&VH6L~7G#_=bYCh`CVld{TzN);QkGi}#?yBW{ z6xXcnYZvf7kG;ZqmVr^;88IUMji!&hcwHD&g*B^t$sgRi3G6Pij3ArN`B5q~Q0xT!p}*CpAB{kl+z-~&bL6l4BgKfwtKfgP1*EY zpqxs5=JfXQO<_(h%P{8`$u~Zz6z05SW=UGS?l?UeZ>ktAGbJhx-IfKFp z%;^eO=U-B@NuikYQkgk%z?|fPIZa_?PCp|`t=JNCve_|bCtPRJ=jE8foL^SC#GKaF z6d>Uis0X-r{uR|v0g5>gaew;Ze*fQrAw5^ZKT57eNIo)7&oH-ZB z4CQhRW6WvoOc`RBb7Y8}Ikz^%F18-%iaE!2U1CmJ$jn&|0(~UrWV2&V3&k!J1#@O| zk2&w2nDgBgbACNB=d&y3ys?-O=G?EmX3m$(_GbMH_dvO370kIImRz^_#jnaG=KPMb zbPu$hU%bBho;6>WV~97g!<*!r^JZ6Sgf}TOfj7Sq1V!HbX0S)z{8q3>-u!m3KV^xz z#qX=Wu6#crYxoi87Q1_+xa)hPwlj)*qr~JqxO?5Xl4x3sb0u-K7WC@VvcVE4vb|gS zUAZGgB4uU$n^5HPcS{$}EfQ2kcutYTRymv^39)iGMG|S{aEc`0%5g9$@`sY6Bj875 z4L^FfQ86x}$jxt~QoE+e3Aa&mwSpoma{{{3IzW-%lZZr-Y!2NF|%=PkO8%B7IosArLHd`&60Q7;2z z_-#}i+(so2oJYOxHY!&FIM1&O2uPe)D|F5a3IpdYx{c}z_soB)W|KnQMm-LNej61B zw^7Lh=b6Gi;Wnxtv!zySiSyX(IIk0~WBn&`w468fb!KO)PGUZ5w+4bmw^2RVee<8G zehOB%QI98Bzm1B6+oUJM5j={)$?(>~W zKau$?=FCei^W`cd%vTN&RTA?dBQYQC!+h3{Gam)xZB#4W-bS@@&Ur)9>^5rU$c%S} z-9|N8x{b;)-oK4%<7TH%aT_(8({0pi-q`2cbRulKyIAJQ75m&HvCr`p`|!>4YlvTN zs(*oTIA4oa0wx2LEul7ro8R8u5a1QzAoYR#W;T+0L;GA=UpvXDD3iil3 z+Z0_JK;)eB1$&%Vn*}>Oappa>PUXSr44Lq}z%JF-6=8*};m6>-8t!^t&2~~TuSTrx ze3*JkDd-H0hZ2G(!r&6D{ynTF;w-&vYjmt9gYKNn0;}`nHyxL{?1Ml~8aWJn&9(ap- zLdL7u-y*I&@RnbP5RiDQR_MGH6b9Z}bT8KxuFfx@W|KnAtF58X@8#lPUX48PmMM($ zYJNtPTCpYGVzc9|PPopb!{lgrYwTX`1ywFFmbFzg)}nj49^l^js_LfzHLvy?1nBp2 zaWJn&9vI64jPq&;)n|g0_84p6UM_O=*-oY9yqep6j5taoW4X_FB>hCjvY7jfm8*;} zRyinCNsNVz#8|WsV_84WSQKpM)y}VNeWKJ-tL5`*Zm>GeTMJ}{ayf>~T>X2w*3Oh6 zW?pS%h<#pdYeVc}>w&K3)y8&RnpdNRJg-&`0)3=;H8#6>H4DWq6vez+HlNq?YFx95 zc{SGU{fo`3?U8UX=P}9_uG>3O&KB9?d;YP*oaCD`XIE;3IVm%NIrj!ZkvaDTdt}a| zf;}?l(ZRk9TOOwTTkD=h#a*+d?TmsgiK%5mXG@}KEzXw2(OR4&iJ-L% zkmQBrjwFecmG#>k7)k!Ust>N)BdChB+|;^BuT)P<6x5HMI}c^ zz{SWKe)L|!i*b39r1ladnX45fS(y{mmDT~0ys$(hl4Ns;B)c|hlI%I^PM0Cci%Uh) z8RphF*!!%90DWf}-4oXBaXEzbE=9g^gi=`Va+&pTzY zbk++BC$OF?T%BK9%_fCny%RF);ehqX1M8W>$a;RvmRhkT)?>3{y-v7}^-IVxh4n6@ za*6eNYR%UClG@g%U@f&; z&U$XJI?j3vWQKA%hRk|<)I~Z5uJJ*ZDY=X(Lk#PU46(D`)`r-{)&u=-tlK+6LVexd z*se>gM+=$t%0Zxy#CmLYtY@Lvg+i=%B)!?Xy=>M!ELqRHb$eX1wy*8;K3TWNJ9zyW zjpOAK>z$x1vEIWqm$|03d-48DUGcg=1VT)}Q=Y$?pS40Ww#fXhylJ8~J_tgP?8?*Yy5T~*ZwxeUP- zGdY)`yK?;KQA|)Gzj7Q*%DRH&Xsk{lYxvQ7Is)VJltt|&C@WVhD629j;3=&Gly#Cs zB+6oQh_bpiYRc+4>Q0xTtSd@IpRzb~`;>(MecKn^6DW%d5tQ|t%DTEWk)v z2-OEZl}@27lCs?HW5jV6Da(DnBk3nnmc^V2rKPM~WrVWIL7_^bEMz3gqJ1dK z`ftg8k4GK_Ui)z`J` zT4W7B1{n)?%~%#(!B}W)iOLxZb**K9v3^JH$XIl3#;O%MV+Dm17|Ru|&TpV*lR`1pDVecwz*yvgu}ooPEI(#Tt=JM{vDq*1CST|I;#8}qWls~{QmIt_Zek0XS0gAD%m>CNPj71(8%L0syh0s|;I)$;2 zJ8MWw#&Wxl5yxF*Ecf}2q@T!G7IWs4ma%e`5ymP9g(``$kdYXR_F*jR#~F))Vyrvq z?WyzYX?xaqYPFoP++cN_u@=Y-<#G&}vHnP1lrve@&XggBu||g28Eb1p>|*PIelai5 zy|aY+OxD=0ON>PenX$@2ppV2@Y<7%gq1c5&jCB`!vze@H-o18LST-7E--jP-lL z{>GoT>)Z746xYy2jm_tl>v|Ct7!J5_ipB7IeX0Xm3dijru}tusDsOw=FY3 zW4Dky(ik1DtUvk81ER4{sQMs{5kkdQPGdw;Igb8i8&KtNOe3z!aWFCMHj<-Zy)9Y8 zj~=FBTprV?y#%J^Y6YfM=0r@TbpX?DDG>?N*c`&Nu8kVgdXBo&Wiah_QqjjWj_E$8 zAz;?vn}TUv%fPfdkZ;^XDVTO@#xxvY8hOAp>UEgL=?$j&$&P@8X|+Pfw4iVTrn$n^ z`5o14QYcKjQpPkKU>bSAG*cKc&5zkqE4GAbY<8H|3D>dy2Xaiov_Dk2glX2+l)vF% zng_UdekavW0SeQ8Gh-SKFpWH5ngtj!4WYA!bPA>+ch-=WnC5mLBaXX>Y3}nKNk0+O zEar?jEvDrvBbZhW3RM!OAtPZL?SpC7k7F7ITTHvXw)H7(ORbh;nj5T+W7-0lpIqh!29y#rggFQaCaQ9$ehTr~7^>y*PCt1Uf!L?<$YksqxQScivwQT16 zMl`L(pHd)>*5X7*1g&L&=>AmhNOVY9S^w4j&K;s7s0zcJ=!mUyIMESe<#3`SuF7#R ziS7)^(Lmpetl>xRB_9}&hMxCDM0b!Z)aY_0WXpV zUbFxsFCtW5wN^TX7m=&a+$t@3(d|A)9Ho&L-RC=!ej+bg%$c=XUd&ZSc(EK5sw7@S zM&d=wNDG-4%R!)z#EWcpylA1=g`(iaY_56nT>j1hm#l&p^LGyJFPC_+Q6^p# zwr*?Z^>*4jJ{~B?5G!Jb70EYe#jex{D^g|xD?TU)imdqmf<3b0gM)n;Cj4{N*9Gn` z$QpjcIlb;(9=M$e^LGv`Xk)_mI|pcYy4$_(Oo-~%;sl7^))EM?eRIc#+>rq3cxC>c==ky4n!Zs&BBB>lsfCN-IoB)ZdavV$oe2C;|SRYE(@T2#F4vdQkaPt>* zP`f6;2`}i#)d~Wv%n8Oy>i_}HB_a_Zn@)h`cMiHX1S-XM4tkEd(^Ns(DU)B&@t0DO zbcTlrIHvoIhJaavFEZMq7j$qP;{_dmO}_B}rM#fyGyuV0(1C*&bdU!|qh9xd4o+_v z%};g&Bu1+hI->=JfzcMdpu-jJnLkX;CWU%I$5l}1FX+I*3p&UHqnX0^f(}1sORd-v zqp{gBS|?n``d`V>GTPJ^bUa*j60cdi^&j&^FX-@K_s#!C^;58VLC5I?>o4fQ!3#Rb z1Fu=I@dX`-o;9RBUK@Bp2Xgf>Zl&c5I^6E##W5Ip&3(R8=_m4<#hh8E<+WU8gxAUe zqDta5WF%greR$3KabBZfd_jkmhST`Yft7Pc8BjggJJXYDlIjz5ybBI&0!ztvOb4piggi|Op zfm0q81Vv7Hbg)NGc}%d!Ijz47_GS3xA5>o_|KrITehkiO;jZVjY-bd6TEx`OPC362 zO>6NvE#hb`PBcW&S_09uZ{B#E+>vOIva<_VIc zf&NFbh9A8bY+zhOG@HL*gW5IGOnAXYu2v9DWlnHWS_g>c?1+);~$btl^-yIW0Dl>^!ICW$0et5LVio(=uh#=d?Iu`n=@rBH zXY!3lDrHXVs{DcW7i{2QPK!M767{+{EiNbUl3!d9ka($9=)4pZ23}h9f(=)=I{z0n zn-pqJ>uM+qfamgy?w0Iss&!6gY^zU+s7oV;y@nZj(%csaW#EaPBMe@yg zu`4ygiBI*q7nIXQ{p}X3r*T_%ZlA0PdRqEVzRI(AbikvmNSM%K+Ow zL+;3SbhEPl;R9p4!ym9<1sZ}YAak}ucja(|Lw@BrmwK@{K1e1+so8LlzDoi#$LU^*YGnoCUJ{3`RhLtXiQ%R!}$rvRvWn`~_+@ zDHLQ~BSRJrAd5UemMM&o<;QHP6_hl)(cfGL6)^OEMGG0S%0Zxy z1X*l$kY%CRg+h>Z4|=ob0kV1b+MmgKUOf-M6>Iz2J?Sw&5AaxHtQX5A#(KH3#8~Zp z!?U~R0sc$QA;!WEW07ypSY4?R#-hvw#(HTG6dCJf!JZjQpOp>v*{|B?1k(9G;XSzj ztNOaey^^fqN4$5~Jr97pW-kl6U@x?{q~+{|>ehlf*V|eKXzUfL5NV8#SJn@G-~r9F zU02lyp9dg>imjZ+h@^5jjS*1gxbL>}rMN1`!NjyzNvDSO)npAndYFcBc}%1B5}1~& z6_{3;6ET(60ZjWJiAb2n<`AZJZPb|7bJU$KgK4jkiaw@sO!qMj0s1;Nx+h>7*D^5e z_2e5bQ3|GAD`OfCFpWH58udC%ii9AHYpUQT{~kM z4ls>8V45k6nC8c9sTEtoG&Va->xAoAf2|x-Fzt;hmoUxRn({XsO!ENu&flc^DL`S` z?`BNH0j7}$OtSzZrXf^cwN^R>(~zqVF)J-G&Fwx$9Cs1Z+~+%zej=t>%o%Z7Ov_b9 zFs&REsw7N9M#41O2h*${$21BG(=M(*((~78d)9brwH(vjV09eR7RU_cats;ME}X>4|wW}(=HLYQ_b zdNWMR=G|+Tmi2Py)$;&cvbL{X#=6{g>=kxzyT$poZF`(?+MDGPr@d9#VY^Pe|E{A? z|BBXl=~nXFWYK4@Eq#Zj@3iz?mcHB4_b6R^(XMT~j@o~m8b5O95j)q8XJf|^JJv3% zjgzi9J4!=KC$l{}=Ia(LqyZ+2AXU*pQGN!v`7eB{iFztJGg)z0z%-oIXMHG_$ z<69F)Yd;^Sf8kpbL?6at$F@`TY{uW)SiDazjm3wRRm{vJ{p%uMYim^oJ~n7J}1d@Zd5%=}S_NX*RU5Hoje)Xdy-)SWKF z%%75qJ~MMn_n8?1vj*Q3X69N3Gk=zRi(@eIv-^Cf(of`Pi#fAr%g?#W2tSttM3uzP$VmK5`|z{% zKQE9O%HrVKIsJTk=2&s!T} z7h4bX1L5ZrCDi$OY}X}zriIMUrOtxNH|*%xpMdHuAu1 z)a#gy(;H^lG)tucAv4>()kVo{*3Oh6hS^4j*qLo>L+oPf zfqoavwqHV>*~WHVVm4aH%vKHpeI#aMvtu?3#V#6Rw)@bVF;K&5+0K@8h}p2iY~-6WTUTm?*(fuC z*?txTMP~bXu>XJJ&I4SMqdMEmth9HPVDCl=1OfzNj06H?144koH~=QtL}QHoV}ijT z7Ou#Bhnxf==bSM)BXTq*XRtBBG9XOO83W?~-gBzEPF45J?VYu>dY5iZ(By+kWw#xCagW3=)$Ioo2 zjz}wqV;=!mjsuB(o9X(Uvx7()e)O;pylv@9let~`0%h-nl>>~}>N4XCB zxD$YVeqTU9!oFIeV_#4>0{dLyw%H-7HYpVLT|Z+V4zQ0jV4o?B*yrbLsTEtoK6X3o z>xAoE-y+ApV&9=Eld#X~9m51*p9ib;TU9;L#y%WiA8Eio3pQdOqP4uXwqvjl zxmw>>+Y}y*q<=E#2E92NVM`p;EW60Qd4>eI@pVc#_i^0AHUF_JmZ(ZzS>yG{; z*mq9}b?jSo=o0o(L&m(n$>cj=XK ztnO23tnQ}+V|7;%(_On9tKS%0`s+BJ=rODWIm*B2a@@YlpLJ_N0BuA=zR_a<2>fu_;VxydXBo$R6xn)^%nZxD`<0^ zIPfIiQh&}_+qdjK@rdn*pR@a>lT8=e`vAS7{$(BR3ra=n9uJE2uRFVD|F@y3Ip@a`y7fZ zT%BE5)h31d9Lisz&_9QQgU_Lm2Iez`@pCAC&X!uSCFWzdW4=zf4*rGY(BF6-P&#Go z^z21cCNZDYTLZzo&!Kp*yJp9zd8`-^ihGN1eWpwdocK8rc?Qp!iSs9chL zDJ5ZS>opqNx{lg-lE6e{U5{oI}8s<3MuG36i5T z;4&l)KYC+Z80T@$#ve(cbj>*bp2x5GPZRi{;+Pf$Ix&vwnZ8^hjQK6 z7Iy+T$L|XWNSsqEbj~5eo+R;Ghip1@_ui}NFT;*`-!XBC+h$i#u_RH0TQ^4H?d&-; z91L!e2GB8yad68|+EOgG1Ul??pwlVW$$p|7`#QLFlFB5|v3hIJnfFZ-4|eD54^=(| ztHG_C5bVA62U6>H%E90kX#gDyHV$qfTIMTp=OuUz7}1!t(Ee@EjL&h zhn_hyL%tkC2A}V!iFR=7Ndl0GH#PesYtQPm?*6Ww+uzf6$C2BQoPM93J=^z8f1n*b z_|HI>clVyz6)EbM-=4|zrgZn|)ZF0Mu}4exDm`b{2iph#t-JS3e@Kf$TNb`t`Y=AMmr_gBcok4*dwD|E!dY~v}>xoPJ%xnY4|b7Xt--evx8AE8ZouB z}$jD~S}Mx*o+jFyWPj8>TwE|t~+M!SYYBt~O* zh|#(_YDVih>PDAgv_F%IKBIB6_ZbZVS``)DBN&a_A&hoy()BBA3!~kPKN9|`01g<9 zG%y%3>neZ)kKSEpD~cKdd74y zShk>xeg1LZy4c0m9sNb-A7>Kk^N))TU7CNShCKgRb^>iAz+<HTFr@8%!5e{G&Vz}tlT-YV{Uo^jvx`TFU?- z-c;^Lh=^NRyWj)%ix6+3;)8@pm=(P_Arfuna6%;L%5m}`ZS0l9(UC(?IUF515|!gX zqT?+jM<>hQk~IA2p(DoS(UHqowHl3djOge-Kd7`5(a~bg*wvzAF0ud}%MPMQLPumIbfkXJ(b{ozB%{#rLBfXFt+YRB zd~2l~9o=AM93AJ#4Eb^l866+2CQ5X)dd74y=(wPZ9Ub?ri(PEp(Px2<50Owu$3=%O zp(8b9bSyi8HWE6r+o7X{VmA$;<3nl9&@r30P9G+#jSb#bNFl7ae;OP7pK5IIwP|ed z)M{*ShuDwzOs}Z)B&Dj$-alntcP87T^e@coas%5ueYiK;ju}4R*zq6b5x)q*E((vQt zSE>VQM#Nn+q8*Ha5s9f~J7+|qX)R8K#L-%u2#KJz3=rWz%N>ajDJyIL`oR4n!t*_7 z4iOSm1!Ycz#8x?+2nn%rIQS81<#6yL;L33z!S61TqcdPHNyCpG_+eZg{3yKy_~l{+ z_*Le_V5M~c{O%+X3H;a{0>7?~8vJ^Wy3u98@2*nO2R}~sKKLO(iz=gg1o&|~1pH1T zUB8XCfZyL`@WTQ4kp}RiTnB#K2>?I8FCZX+U#-x=FDM)Vey(ua?Cz>IDHQnKDuW*m zz>hS5pDB#s=jUvx6wI&=yAs3C)2*$K3fz>nPy{45l^X$btzpfv-( zY~DJ3w5;ddm?8JC&C|zto9&q43yk~jC6~DG{z~SK8Qw?EA@0Kt_mOVQeO;~v+((`f z+;`s~C~{vD?2-G{gZ=%7<}t%ruty%eU$8I3gAY=9-60=L((q$&%n*0YgLaS#9wgS5 z?3@RQvb7M67O4ytCqyD^^Ee?AQ)?L@#0SV72@!ECYd3lDei7nhRD5vEkT5HHb3!EA z%Hf1a(3Runhqtj;4o620LFI6C*S>7?uT z))sX9hm4LmKu6Mmj+E=rk(&nS=(i9ABy_A5Iywf0Bhb+mZks())h2~P$N!hn5eMi< z8qm=cMs)OZw$zF(p(DE;I(EW!u0LFkeMQGdsZ2sgt9J}nfQ}yQ&e<6%pMn)S-a4Zr z4$zS_prZvF(Gk&;hV2-1MDCkj*N5?rbL%tkCM#smii4q;Ho-thv zIxgs9N5_5ZVi#L?^fy4qCrGHH)D5p1cR}N<}PDAAuBS^yAGtVn z`^bd=t?P>J5y-`j2;_Pe>H1@|1-br_zwy49EDn&1G$0q{I^^P-1-bkRMnFQYTA?FX zP&fj)T;aCavsG~oYaVV2c3=5H{Vv?kN@6n5u%w?<>$T`GV*kLTvjTx)UwSck6GlH>R7z9PedQq@1!&om>dELuiM$+(O zkg;&rjAg+UjD^OQsGPA-*IEV`>m_nW#-f>(wId(4UyOAl6(1ZSLvTe*&RFQK9L`wC zuN()Gv0g4Y>Z@0fH2ml>7RKcni_%LlRxVaBR%K4OQ(6ZY>t7@yF&4W+jMddqGgi-0 zH@XaCy;3UrjK!(jXDkG0SyyzAU@UG#FxG2G*PpK~jCH%rSU6xT(!f}h>llk`7RK@` z7y*f~YK6{NLE#9-a)sMwuT`~4p&0A-nXz!dSfqimOkrd!KW9s=*b-y0+c8!rT<7|$ zf; zeJzb^TPx*^rHYFF&1_hi*#eg>T)e$Eb@$CtTTh4$XIU<_GK9B?JBQ(**i!Yehe}e z?wYYIxPr0J*bVA-{4Q zNXB}nx1IqF82 zVXSvcMW3-ab^DBk04=?Y?h%Z|jR?kiAL;rVwS}?nkQoaHj71t4i*g-fam~V5egz{S zF;=b687n9p!C0>WsDM z&?UyAhRj%HC(uS>EOtA_vQX?sA;!8Atr=rw^VaE=Wj(JLi#yil>B+PRW36nuuiig+ zu`$*M@XJT#*EeFTEJN38NpZ|4uT?M zeI(eIVXRN7yzXV6CTaL_^6LiP7rhbkYx(SzHtG4WkI8bzFVCkh zf2N{moB87*;{c3(f>L^WFhIVM`zGyNg96i$PeT4p8Z!Bnoj@Cj{MhZt&qA>qg~;zBv}WX& z&0D9($SMxIW_q{udgc(;`GN>5U%s=9YeuP&~;Uioe* z_pHs+i+Y>wb7C(w_WP1tV!y8_nLEDrUvdtyA9mP}bYu4GaxGv#@{C}=vx1<=e*Ycp z%dp?sDzCfQ*GU?F434kiuG!CmE7%W>Ez&vrp{}(IAl+Bxjz~u{D{G%VeZP?I;786u zIs{jM=17O`%Hc?d{K~O0(w%#h^*@rMzWN49!;ctgeolvU-lX(Pb#>n^MuIEKc1%Wg$QdfTMc^WpN{dvc5yQ{$*{Uth;2& z!U1KG2FjvbM_F96P?lf82uPGwD|E^V3P(_uE8I5wuBuH6MOk|@W#NFbNCRb=!bn+u z&X!uSCCXyAqpVK2&h>A}F^00fr+kUBtgbPCf}t!AP-``-d*8QH_TzaRzjV!79F}oS=5jztLy~YNR-8HM_Cq%-6%v^ucI}itZd#oeZ8#b z)%Y5Btj*Im(4x;_o+Ji)nK9N6*mtn78s=V%TzanY)F}O}V?wY+U=z_h_ z-jWs?wFYpoIE|sV%`-q_KbJew7!9wi?S9mL(b%7>_}~B=AyjPTG)5$qC-62ft>ZmcT z=cpT92Gf2c6@5(OobF>90<`8gx<_Cd_cAc;9Mbh4Y73^_4My+}_Tm83NCT!(uER7g zZ!pa-b_66$s}(w?1%)Fp%@uB&{a)23g~GHo6#55yae!&00n$ zS|?oR`fufEF>UPPQJXH)A)D1Z=I=Sk=E3fqoloUcutK)eGP2JjS+Eh=5Uquy zwHuEcu1Y`!aG2rLqo;^k~@r2VX73FD{HqpW4}o5sVY85as*uAmy;ZER}Kd@;;bAS z1Dh7)rr4=kEYhY*Z?uym(H+Tj4<9{My3V1^wcXEZ>kjw6)@D6&!qJ*|eUVi}2U&#Y z#q8?^)R@lIZ6pmpdha%1TplB;JiD8 zKH-yg*RaFPb# zG=&j3{hTeeVoSiuZU>y5aGmShG25YiEkJHtE9H>s1}o!`IY(y5 zmt)9~d9s=)A=By^)5SpMf-ZK*+_x@vv2{n^AIQ9lggRs{I&=v#sUbsV*$K3fAd}q= zGA$IlQ3x_mp*4fdY~DJ(s;qfjFwMOlExy~X+gAJEm(twp)2g{w=2w|}y|vPM?)9az zovDA}yT079Hczici}~FKXUrqz5@TLiNz0hhGL?=q_3wLXchX!?&LPIc4r7vT%$QxS z1&m3a5sZ1EASg2C(ZRk9V_sC{buYUZNyCr9xmVmZV_I+pW1_J|M~6w&wUz-!yolV9 z5ou;+?In-iFGf5|#RnM?!4>g2Bci)<%$jS4YiQJxAT>GK_TzspvBnr*5CI5TMn)(LG{N zj~fw;bt%&IqqK#w?v)t}2aH7;7>jZpV{y&GSbhZ~ATd_0&>1Tz9Kl$waNBIEYLh}S z*1a=h;efG717n%O$XI^PmRhkT#$vZ)tWLPj^-IbzhOz!Y`4VGUU1R% z7g@kqWv5UiF%~isV^KehW$id)k+Eg0EOtA_vQX?sQ7~3E*NmmbjBhVyI=Xtk z?MvdEcgp@Wv6ixQ&#_%y<7>uPN_&hY+nM?o7>her!C1c#JFVF`-tlsYu`Z`Xj71ym zchKIawzbNx97BAC9lj#nn6J8A3;2pWBlzmFK~UtY6N7yjzB)k|`1#ON~#V0Af%yZ7#zGe4`M{Ga* zoZUB_=)Ic<=w$k`4)>L$BIyicSe&|jz9Kq5ts`GuVEYB8S5gx@&cFTq(<{@~H7C1u z=jSFgSv~*kWYYB$wB3IG$@ISbalfH%Nm|iarXA;>tdj=5qMT~FifZy}7QXT;7y*f| zYK6{ML1Eyl?c29cuZ}{NJN;u{y+wlLo#rg{#wR zQ02DC>b7*wa(~HMIgb-xvD@)gCtL^r%5t=Pl_pI;rknLCi^j7~QJKVAR&V`>c=z_* z)4xC&E7D)vgN3!cJ9f>ks`4q=U6biL!M;b2QBN8iJ9bUhNds$Hu)C($p~{_;RTn*J zke<$)Jf5{B*%-cdV?gr0WpI;)msPz8aEt zu`W;6oZ0HmswAD`y6`#2S67TYR#!Ueuzs`4N7QjD2hc`#vU%(DF0%4meOk}`^}4#? zjw37XI6HBN*5)j@gSDC7CU*Fc{sq3^irqZj>vi+|{4S00yxjQWYH~^VpD0OVIB!;4 zIwYIEsecz1r)V)`IfobnJB&fPF=KSO7BB{RMli-Tf}qG4*9`V$7~{`XUf1$pkTm=l ze1;2mJ%(e!6=OJPY)5RIF;Lf9{3Xe21xuigl|&tXDtDv~8eUnu^5gbvROb#VJ~*mF z2o*y(br4DAaOxnS%CRwZXxVcW3$Hcu^Sqc?ySCa<=U#`T;YaUDE{yY_1j4izI}0em z+CmAXYbX)4Yy>5_SOF!KIq^Yh9e|QQlZXT*><$h3bam8&K0Qa>=rV&o*OiJslyGME zp#%Y1lp5V527S15G3axB()Fur%b?GUzk)uohJ!&L(f}ot>jr(e$oWI>mplRzl++3x zN`k@wCG(bEcZJ(#H&C@np$2{KheDrN!@-~rX@C+_7zcg)oGrCtOHjgY2PK_wo$G%o zM++s3K;(wXmq5hoszC()Fc8_feP;v_4{+z~uT(w-s6n6m6QD1*j)OrT(f}eBU>x*8 z=%iuW1CfD=HRMhjw&kFY+r5uC?;?n}&krQ+L=dr<^B?sVL~@Y@AX0V;MG}Z0BY_C@ z10vRrg9sTl=<^OutIV#a{Ym3nE9HYeZm=>AC39qkd^v^;Cht@e<;0rRGp36f^jXlw zKIpS=UF>4(jz0WQO{~33LVaRw(V?@K zI(?6v}t_561o)KJjlOQN^*-e9e87{kp%IkLa zw-uI3)pOL1E`wROl8QcNaq9Ll3jvb`-x$o|Mg(U4KhpIZX$xjOAY&E|FpD%` z7Ueq3;+h4s{0c@u!mL`MV^&Z&0<&D!K{B&zJys;*O31`4pfq>p>Z_aDZ8)0kbT?h*=1o zG;GIU7IG&I+Y+>sp0X?$y?9JAbDWgN5S$PD>%3>mZDuO>>&vU}fVb%v|%`hvQw@yDOYkqzyG1j>> zx5gc7^YlZsn4e#Ir7_lRBHfs=x?Bqwi##J3>z{(4$XIs> z_GK9B&ML2a*{LKAKL!~KcgCPl3w5n!fU*8r?#Ng)v$FQQC+rtveN4p% z84JM`F*#$QyK*>VA-{4QNXEL0_OFjg*BFji$wxKmmO80$_F zkr<2JA;#+Js2Qv0s2g2|vF<7rea7O{?K2hvv?4gVM+{|gBZ9F`BVE6pwlLO%Gh^X^ zu}A}BQLbYwu2~q%uV4fu#;O%MV+DmH7|RuEMQ~M{6pFDPk{JsJj71t4%M?b&@^iM- ziY+k~yB%Y7!ga3SO^z{)br0oBjAeC=`2!4Nd4O64T;)@MVyuT|#=-$(kp{-H03%}| zRI7k%JBG24t5v|YEg8%0-bb8wk+Iz82ahRj$WRTCv+Sv_OA7{*%A#m-p! z*2ONi?&zH`*2g5&8Ees@ON>PgnX$@FppC>>>~@T0q1cT=jP-F^Gsep1t#5A{iA93DA zOmm+fNZN^*W-({PX)!GqS%7I}r%)te8Zr{5Q9qbw?Kq~9vBk89X@AoA)=D|1xxvaf zrp=KV^5qy7VVc!5ri;O}1zqfzwr^eRV(X5sFm2JHOPEFt8Pm#6ppArS>~@%Dq1cV0 zz_e^mnAXiV{yL3?{X;e1sE@GPd?WAlDNFa9`2)pI%s0MBX+7WgUD`GJknVln_Dx$R&ErGXWsvU4DzE$DQ%D+qocv1l(`33$58>_T zrYv#SNN2~VKsv%~am|sA09y-zBBCL(0n9C7yilKpsI=Waf}Z zY?Z?yj}R+|LmqKejsppKPn8^X^wUTheypAEvekOuGA<8!RJjD?aU+IxF`|C2UrjoucS-hrQY)TWP+Trquw^!o9QK}c@1Amp=1*U!)vggiYXBn}Xg zG$179I)vnQ0z&%D1px^mYlV)GLE#95bcI??T-7FpLdZvEgv0?tk_Ln{g%KhBiYT>W zO9;tshmf6cT}jW7V+=w*NBI&$T3uuK0)+GcwVJrfrvQbJkID#%1B4_E2x$REghZ%T z6W4YOLLyhIiECRTq}%gZ8WGZcejsTlBBaHf@vBA1Tx0=4mYqV8gpkNc2uc0?O|*6# zA<5VxRUr5qvMU}YR3=g18Catw_$-_WHz@5*)il5#g4ZZYdouB$hV5)cxLUMdN&|447XFv$o(p_!R;NW#f(g10c>t1){@&?lUVn;xNv|6DUGCQqwx9mx+4x=cO(svW(wo$j(*OTTCpWaW4D8}PPoqXSIaR5(q5;0 z3DT^t`Y-srR~$XSU9;D#dU6{Lj`2dc~3Ry8nu!^_yKX!j)51z$YfNxqHR2d&lwT zx}@NhTUNYs!Ne<{R|-pLYOz}*=*ME1-kV>A`CF7!&w23; zggV(VIZTI1el~er1u;HCT*zWib~kz@jpzzwxDY04&}n5eY2V9U5Ee z>Zr$-dXBo$WyY4?EfsyR;MDDd1p>4NH@ZhW=f#bP(VzE`uD?-RMt>g5Up4>uJPt;G zNCQ|x&+&*5g+B6s$&q9#63T z`XUZSf=B~oSg>&<2+>-PTiYIF47|RGT&>5gZ8;L;cJD9F!3Y`d^Mgt|5i%_1K4jz~ z3m~KHAc`c&Kt_TL>IX8c9fu4uY9#1XJ@GSpulBVbw{5MIj|92F$~bV$ks0#k7&3I+ zMNOph;ToS21tb|`x|orm1zqeTLHpLlF1GIIkMdp6y%Orrd@VY3X(Wgm@<>qG3AB+$ zg4pdwf-DrfX$Yj`7w9}c=$8OGZh93>~WjO4UDzE$9r$`!p#Ic}mf)IDjVHR}3VQ6ou3yqTo)vd+J485&o zfXqHFcO)|!URitQQ}$~*@U1F7NM?jkah8)AkyMU{9n=O?IUL!Dt8yGjWc#$_s9Qfn z((t2)Y#5hEHcBsnY`Iv0Y?V3DQ)wMQwogbzLN<1XkgcnuMz)@#Zgd%B`>a&-k&Sb@ zk8B8-H2B6K8}~Ah?LSD@Kd3Fp_JoXVI6yYifNYfOkd4b5Wb=z10SVb^g^p}N;Rs}N zh1+JISG7r@knM>X*>HetqygDXVMI1RXG^Wv60)(|AzLS0=lbX5*jHrxPnAi?X7!Hw zd(PyY2fK6j1(i?13fZ2NkqrmPMjDXKf{nm6ixs?9 znG-sd)&XAonnWaCV|QrouB#(W#dV)5?K$d3QvoHH*LeT9xw~&lMW5F=r~ABy04>9f z?l8nQZ|;u!7;|^uCSCuMw#?l<89?w)mEvITjx_KZ<+`~$E^m0vFLneZUaJ*4uLXsH z*XGULxx&@icT{assJXkRpwK^6ii5d3(!gt`FwWiiIa_MQmUxZbj@LTjI@iA?hyFg> z=Sjy7v3*x%60cdk^&j(j^LQTYuG#lgJ_W0Jyr&YZ&*R}>9*;Eengtu@@er*gxwY-_ z+Q2*>awiSjavsm^-d~)9k=NYk2bFdruUX8Qby{A_MHcW{*+CRZyoQX#Yt#>~Sv$^a zWQ_B8mb;zDvwY5IL(*&>uX1EQ^LadzrFlHg@%}uX^_yKj#XMd%kDtdoF3sbeU5z*K zt^b#oE8nE~p`1gUf*npF-I!Cl zTnjjbJR>;eM?p~JlphCs0GEmx#nE><*19 zb#>I^NyS-{?%sPf zl+Bw9bcx$$=crhcsDY)YBk^|j7!(c$mPiArn8Y}+wjU4+r zu=IPCNuXl&)}S(PF3^MBIoovEE?5mLJ%eEHZBJC;U|@+ffQkhh2bK^$Y1sBaWneB4 zxs!%%Ik4n*KczScBdEB~4=U|MP_dZ%ppuI$0F|z-F-SWH#m0enXHqZv+IMKH(hA5 zE0t4CKcvdtlZKX8cklg?e(HR69pzypq%<_dE<-~{O^!Lo1=w}JderpCD(^!>rpwG* zr$3QZb8GFl;OD&?czoikZw>I(+r&g4D*1|A&F1M(y>7;UPSW$;&o#c|X z`3iTk9$@vP^t;P8Yy{%<{uMU+v@)ZrQtX=8p`^8tcQ}MxhJ3^?S$oYy$ zDu?qG0aXs?E8?mg2a>POFFESg3y?JY=^>j!BIUpIc;yPW&33BVq)>SEY!v#VRye>b(tuZ{ zFyfV;v!zyS39s1g@TwE8bA45geZ{L?DwFWa>K%($9_-H9Zk12L3a_3+u>PnO4)BUJ z;FSd%@e0wChV2-hKyJ1YNEv}f7HtA8Pmle z)q*bedAoh%zgl49i_i<#i*xI7!2g z!H+cHu363wM!|B#)N-1$9MQBER8Jb>Xe~~6M9^9W=cwEba-8nm666I}!UV=8Q}&_T?fAu&?YO ziX`kqM#4Vo2m7oY$38L&`yQmf`Lj!Df71BYN;&qq!OA%H&5;@MO z>0+>NK^Hsr?OPYS*t(<70{b2!p^klv4qd`NYRK4Eb^>iA>|?jXJ`2Te8p6JZ(wbpk zHgBCiOjgF^ZmTgujT2r~L-n^;`hx1+#Z%Lm+@&?Y8Q)#}lz5D1?0>4Xe#ZVPV!CVV zUwFoz``6~_!@bRRtnT^7eJ98z?z@7Lxnp&gm2-&uu)}?%8*^WmYXSF>X9V}17z9P` zyIinG?z?=jFT;0#r1HAsU6G{W$KY5U?wao`=z{Oi-jbU09jaT4(;RwR%K*)tBzL4a z8eUoZ`7`&6=8k>V9GWA9inN^Oh@^5j%@I)LaA+g0%5fl}?MjlPZoM)|!;c=cVO$>C zD7^%<{!k(kw6Qw`ZCxETwDlZyqsu_s$x_jWHqPljv>`yN;i7xQ zSRMB=pzW%p>zC0MXnR41HXJ}3X@EA$bpzU=1!JeI>eXWgcTPx+z<_0U{&^AYA$d_Zt z(Dq0*Q9_&5Gp37ywgp}6(6(<~>|*PV{u!2(va)vVXYUu?t*Q9nSRFxCNal1$ zY?Z_5ju0!y%@1!QtsIVh1Y9`|B=%iTa&!hxAoEzo8uaihVa$nS^~-?-(Wk`#jj4vzw@V3Rc+nFB$uAfPJI^ z`z+XqeTdfb+}e)8KICetVr@(8bG!E!=U~J>_xVAkorrxFb4I2X`*M*5*jIKCMH2QQ zBVix)gMHSHV;>oXeUH=M{Mlb=f71BYN;&qq!OA%H&5;@MO>0+>N zK^Hsr?OPYS*t(;?0rovXLLK`S9lC^l)R3{S>;&3K*vD>%eHMz{G=zOmq&367Y~DJ3 zlC0<5SRMDT&C@4)o9$ZOuQKktsa)c|zg3dB?_nA*oNA8tO#S}$#D#Hr z;-d5t#FdK`#8sIS{FK%K;`%#@NW{hN5OH;N)Wp?u)Qv7fT(_2rK5=pC_K6DtT4o*H zBZ!L|5yW*{()F8Z3vs=aKk+B)jx=d-KwPAOxG2{V7uPJrcEow$O+5ya&R zx6N*+YLh|{*UM1&RD0(D2gF4hh|3g4;_`F0)QT+;7rPyCb;5P7|Dzl&aXnVwo1CoO z;K)sPUEOlVMfLf~>4o*a#A(;kW_Ek!OO$1GjrkJ{WqE)*XaA(~DL_%y%QI!+fU-yf zWm$lcvJk4(xwRcbS;*C5#oCsX<#z8Q&bvri?(+jlJCU+1=1eFpW#u9ZD68xgiX_TH zMxre0hqA04rz|pxvOcZ9u(R7}f71BYN;ze@!OA#g&5;@M0&5r zK^Hq^?OPYS*t(;y!a9?ml~AXwMTag?7BytbDm#HT5@oU5QI>^bHwsbK=V;9+E1S1Y z|6SG%zd80LaSq=cds_95!qwA!=&c9lLtiS}nfe#zL%CyZp8f|d=5;1tZH#pXxx`p^ zQBuu^{#tGOI+On_=MZCIhp|XEW~?sP0>&cG2*$co5EL2f&cU7;OH2C(``s_uj;*EZ z|96LM+R{dMtKItkxGhe(cG%lC-BmaF3vkoAo674Rw?@+NV{kqccg5D7^%xsA(y$$aX~>;4Y)edYyY~_2 zUBoo^`GKUJh-nscMw}MYa*+j?R(1+S5~d*|VH)*=Y1WQo8X1LY|EWLHvwLZO()iX& zIi|V6$~dOYks0#k7&4}PK~0pHX7!BeVlZt%7dxiyTNk_7x}&cSrhQRD9n%&ax`b)e zkTI?71lmZL#%_mc7K+^{glS)*HN&)Q-a7rVtQ*gP{vWL~$t`R1^uMf0n*)7~o@;YX zTbE0m_FyH6)6}(_eyV>D6dS%-yr=beflTH80+kGWLKX<7q1*fZCS=eLKcyl#FECu#UGI0uTm<~KVS1-}tf%Vth% zMAKSO?QyggXFMWkEdxaN5V<4KA!TLlHqSqIh>oBt40EC*w#wn)Mu?TeQIEJP$AKie zM@Wu3`gD?pAH78-F)mMZlwN}9a%!@eSMbf~FrZDoN zUlFBNY>5}y?Rc>ht}E$La*W}{$0}dqMXPHJOu&mC;Lh3OR6YeLUVLrlMI7)VY2ZZ* zF!CZoCk@*%yolUM!?xr_w|gIPmPTH5pC3rtiM(hrXVz+YF&A0Di)E)!B=I6L5-(Ce zylCw>FOsq4#WS=&X?$y?oEP0-Wt%42yWt>KW6;@Zy3lc3#}KE_ShXM_0VK z=+Grzq=w9kWhc-^;zf2lUbIl`Mp5u$HrKp(Y$h#Ennv(uq+9%2}#ERHqMbeE~ zvCFl970EM#6`vFYMOJ)ruxIwuBEG?%8FD-mK11bogL@`P!;d(o*L{~3w=-d0Q__Mq zCT!P~M7z`7)-~rnRJRtVMD(_nK!ELcX`d!{BtRNoS$hQpxcr)ubI0@up~5yNKq9Fe z4tfMsIUEg%t8yGj0(_R_s9T>+((t4AU0RIu2yo-?(o(u6z!Bf2&BY1=tjr0PAxmC70LO_qgxUK1V8&&fjP_{p8biznQFaPWKrN z0a_jz-C;~`-gjxakMUjF=aH^IL0i5{`#J!@ze|gQ@6wV6Mx$K!U0N=07|kzs1SCeQ z6*{8@g@MuLeV5i1uFjsXYLh~Jm-h82^zYK*;JdV>fzeE1{4TAZv!zySiP6~Y7_Aeo zbN#t;w2YR%OKab#T{I2*0+mU;X7$#8%;$ZV)`Q(Od!fpwVD(+vHxR6Umlg-#r6mo# zX2Hhq(jt1&uL;=8n$62rX4<{n=pmz2LuNgC7IqVcSk>ED&aNB6NYt(V9- z#3|U}6w-}3rOUN|Q^+%dQ~o6gik$M&V9%T~f=5pK!4aFb?9l1`a@BCc5vyr$?~i3p z^N+8RM;H35Ng95f{1k4m({1X=9UZISu35zbFIWZrEr&R(puDvdWby_LX03LvcWZ7` z%QP!<0CdykjiEkGV<3kcA&~P%()AZ>3*@|! zzpB5rr?+qbIivw{DAz#__XQxw?-B?|kW(vk$RUG1YKwDk_^9nX%5jOSvo|S!k|@e~ z6B2J>5^+E|q=9lwVx%0u6iTt!66LV#l(RBf@09Bjdc7R0D;NEcZhWT%vRSDgFgsKE z64_W?W68z?+%guNZN^HV=?#1CKp*iHf5(!B#{j=64_8cWMl0(*^p5qQT8F*H)wy-_|{7KNR%6_ zj8o1WnIT_}A(M`M$kxw+Yorg^QeyTNYt`zs?hYTaJ!<<={vlhwXd6Cc>)n0i?5z~_ zOYX?Y^v!g){m)B-W5vA4;kzew*;a@dv=_HNm8%2!l}@bsOsXaP~%zT39%vF&?p`#x=_s$t9S zy|2_CgdGQOKY02ob`IKp&{SVk+HOB+GJOk&oc~{$G&lr8 z>!j!Gy2m7aJD75+>9wlq2*0Eb(YmQJP8w_a=W@(#`s$NC3!6UcCS%&A*S64W7K3Tm zpZmKsNpRXzPe!0{SA6Ama?&5n7ljZ|*3^6fw zn3!~9Chl@AU}Ex&VB!x3L6M0+6zu!N#EE-9rt-S=f1IS@M||g@<6hh~_gZiT_oA_- zT<2cYwU&Z=ope7UcO+e!Sy{Wn3-@b8?hYzG_|5}@1Gfra66vD5ayaQCzjDkc-GiKT z4~BFP9wyy`JJO}`g`|6MAl-u!>3%|T)K{M*Y5372U5v{Qyis}y(#^#R(yh!1I!o&S z>3&oq66vx#M7muaHR<*ob)(CW?x&<8=?nvJoVtA`MSxbgMfZq-H*P{O>1RmS|4mz% z^sU^juVui8112R6OiHY{LPPk_IHT03(tjRIBQ0I|fOSt0g|QEs@mi-bb8w5lP+W2aJpcbBF`lv%^MS7xFT6wl0#k662Buiq z#QNjT6#pTYnBq%H5>xz@>i&uTJwSD9jaE5^m;yUYLAo(hbh#EV1$jm=#TSC0$P`}; z_GOsjD=M#R_p2lgKTbYV2euwd!(B6l1y?Wy8e4*Jra)b5dCQ#`!uql-XZ-Sfn=aIv z|LD>@BKBXkd4NF9B9FTFd{$Iz`RVt{+TC8XUj%ZxiVqS9;Z;20V{JrPIh;TUwsLGt zAd_{D$n;Wz_7kot7CHOQ#ZgK(sBXMw&!bP%0l4JuV=n&ey+>`)@Y)4cFptko);W;5 zwyPdr9Nc}Z?cAfIuSuoOy0b|de)Q-FgPN8RW$bo6zpNIC-@aar~02mzA@-xxaLb_yMRgLM7#+CoR~$aI7QIwB2p zM7fTRxcfjyelJ2mqN7@&(@{`3f{t9_>g=1UHYpSxy))Ah4(Nz9(2*&ObmZr3sTEtI zBX&DF>V)fD{~tNV(9yS)FVT_JHI|M%z+JO%t9%Mjbo8!FM>wD((m+QRV5B32Y7JX$ z)4B3%jcreVbVk3Re)!69o2gbebE$(?(IqtBfB2~&|Nv4c#vN?HYT2Pk1Bp9IqIvQlQjJ3y}*cZ9#w3-xFw})su;1jWiD1w zMP*KZ;7jWORs2{Y5>>G4RB_nxx7dEz^hB}Xj>A24(^)_6-c{Z@>PDA&-2E3)(WeSd z-9A+yVA9}=R55SyC2mAKkp64Z_3vuS1L^PPPns{jgo6jtNdr|-PJDC~9S*-{p$fl( z5s;{&R_Ig_6b7o8xA>AP+&24PRhty*f%NyF&=+6A!2{`}fhtU4d?4M=S?(`cE4D-x z>~>Vq3D>#)OF3Gq7`q7fZ&W4`hSggW#=NyHJ=mSI->Q5HRu8AYmtcMIB^*4QP8tZq zf{hQSBU-DCYTF}>fwe7>tCcXdEgw#IyZ0C8U?dFp`9Y;I zC97vl7xQrXf-d%l)Ay~5U2NUaH|Ax=uS%%D%(&>#rH9k0AwQg6b^>jr2}O3hhtn+- zyJ?84zD8^IGGjJxot`c0hToj{W*T#PQ8ngtUGdVf8Y($eY5i$K?KoM64o*BfvBPA=W3HlNt>R(v-76xE}pU6p5ux3I%oq#N^AmumrUk!J*NZIaqn zP~@%i1^eC;L>l(_2rYyf?8|W27M0iiZiS@bM|?iL<1pMchgr}ChoQZtE;MQZ)?o3G zEA+N`2FUCnxg(j;@XFeoU$S3h_Ei-hBr`&&ILpb5NGiwsF4G27IUL!Dt8yGjWZNn^ z>efR@8h-SU4de32M(HJxEf*`0tuiNiDy;*^cCbVwWMg*-*}6JfGP7xcBmI~ZELS(W z46+?66@6smobDqV$|eoIG04Wf3}ickQtRjF7s&R$jBGeSHqwA>lxiyZ+8 z*=mK3Y(e1&WOIevX6IM6NuiMKUo*1d0NF?bvYEn&Y<|v`TCpW$W4A-LPPoqX!{pdk zWV?XMBxJLC$NW9#eL@d*=WLtGr(lI_@6X7F17sr&$Y#MtWJC0%VLJxdkgL@vwJnj& z?cQIUgAv)>=LeN`BC=V`8F$(#vs`2WvXvb~k%Vl>NXSP0Ae*)0$VNsX+c)$Fdv>_? zwMesVt&}618?1~Y+Z>r8UydOo+c(ujiELKSm@Wp{7Id*A+rD+Ni>*8Q<{;a*B-D{@ z(V388{r=Vl_Q9L~)IR5_fRiK}uPNNzq(a@4JtB5C;1d#@AY zJZ|3jMG8vS+&tpF&RneE=E|H9wzLj#^RW_uM?7A}eT)gzOOvi2tt}I%AK-@X?{(r}0+lpyGv&GoR4#A0*)MhkByO%1 zIyVP}ft%;O@!$$qXUD7Bq)-#6A4H+Q*NKA(RMNoBrZ7&R`Z-%_#g@34-Hw|(;X2p< zKn`(|y~{avsPhDsN!)Dp)=)L?y-p8y*X%MXpMuq7>W2u{A2q|lWGZRkW(zh>rXqUM zu^cjEuz1)DJgX zJI>8yjFYLByPZt6e9p>4(rhxda%4{SN6k!@CQ~`b`;)2GZ+7_}fwq?|YKzgbVV%CwqH;E;B#=h#$YqFMnQHzjZe_nWW*z;LD%5YoM{CQveM?wy@&( zLU^sEz?Vl#cK!0_6_q){42`a=U3LFp=FTb}1_ATSpU4jcl3)HLipt^4LNJwMKC_(r zFMnP|a@2FDkTm@0J@kcf`IkQ_y#%x5Vg<8Q=7bNWb%0r}BoT>O*d1b)u8x{ndXBo$ zWtiov9Md^3f8z75m^AG7Uj8&i<6r*dg6NYFm1sdtZO4!hcS}gyJb0U$W3eW^cUXfg)X;s(~Y}#O0OlCSn$u3Xx#7~dZ+Xo zs#oun{<$n#)6=%sw(WIndtKZ9rERaL?NoEd8@*XdBa9wipLG3CwPp11<6OT!dWeJ3 zL(=eODdl=^mWHNByjeQGX+{q>Znqmfw2Dl7@n&f@wnQuIJY+xMF@CjSkW6bB?HMEdi_B=NxY$cLZsgSy{W&%l2zF{jn+@ zKw1!#zM_KQfWj!$BJPm190gpZo8Y{*C0QuWmuo@S`_rj&a`L-^R~5Qo07| z5zjg1Vg*Q7=ESt6bpWJqDiH~!*&UiR@9L;0&3lfz(Pbvh|5hrJ&hYjGr*0p45in`+ zMdY3LoFg|PCe3d}x_(1#nKb_d_iIO9988*%2IQrj{+Hk?_M9WvEPpKh3PwOe-ddp} zZ%`PJciwZ3u5jDz?^SJ5s7dorqR^2S2b1Qc0eMYfoHX}yw$zF(Auqe#;9n zXeZ4Vy<7SZ%9oJW>Z*BY-m{G!pw_5U`4pfg%0ESbj=VUSC?^fbYXQcIa)fFnHEnyy zJMe5HaE91yJM`p;EW5~$+Yc)|$lv_Pxx)|hL(8Z3t`_{!S zw(jUp>x|j^zY^*b<%=E z#{Z-Bw76q!p8k#&{nr7*;TgxTJy1kOQjCC71hZqYxj77RJV|BR}Fcx`6FxG8@ zpvYLa3-)Cg>y9d~d)YseH2fH3EZj9?S#Skop|K?@AG$g7R{`zo$>Ph zVyrV&e2}paToIEq7P>2kGZykI$AM(5J4ufE>dqt$KYEOXae2m~^b(AfixrGjnG^1m z)&a)4gG408Vt0tKx;kpc>N)C0mtm|^rJ~PRoVtC+LcpZKH-@pe5y4n@C0+kVZDFj> zWX8e)W03~NqFl#VT(dBiU%?1Sj8!Xi#tI5YFqSLaHoKduO$xfqi`|Z~I^jCk?;^(-##&Rp#8_6>m_NWgjOYRGoSmlfDL^sS=Q3mAfU!se zV_ATau@I^?8nqq6Sjg4-W!jdE<#z8Q&b!E1?(+jlJCU(0=FBH8W91?X7_00QiX_HD zMq(`Lhq0_3XDl*`v3{?=u(Q3|*BWrPwNlPlZm=@WSaW2Cd^v{9Sep*38O!P!)5S2> zf-ZK(+P5xtv2{oPJB)Qc33bL=bm$UeQA1{|vJ+?{F&4WWV_7J6qYz_FXw4Wao3~Ck z%X(fh7I&=8(}QRc#`0$o-)xL^ce%t^_f%3oi+C?tCe6KVdmr20*S3vq*R`GMX-17E z9;|BZS;Q^uFb24yo%Ads)iatnBVE6Twu~nJ2bZmnCgNZ;k@TEh7j2(Kq?~Hns+#h% zh@t7vtA@Ev`?HAin`Sg|<955zM61ZOYcw%;W;UnJ)L3jBPaOD89r1^LIB3&Etn1&D zxu0C>hX*T3&my+(O@Bgj{gdVaatv`Ub~u-GW6tezE#O@8jNse{20@W?9~A7%aPGrY zUVl#>PSWrra&Gs`A?|vL-hwNp=+Wp@+pZ;ny4Dgnw|&C!A#z8~rJ0qre|yD#Jz+SP za}iuot8*^8D~EF~@+-%I2MICG=l{vw`j&dqNy{S1#Pm67;9Sae)8|~XaIRm$2uPe;D|F5c3IpfPdyvo-uFf8< zYLh}upML>`Z?*5#;b8ilG;ppdjML|S&X!uSCC+8HdEuS;*kTiR!uySPH^@j>gmL4kPeD6P0X#HlFQt?n>Hn&re-7|&rzF+sl z^e*u$2c9YXfaaV(r+?v@LayFo?sDzWO`G0g%=b9C#2QagBGyo~o6fI|z6rePZ&mk` z#3c9Bob;r5f-(#-2X>f)bYte|axGvE@{C}PCk8>0Ii3{kKi41Y_PyaJ2m3NC@^qEg zHUA8fh9B|$hn4Ls(^bu$nA=%oi&j4H@3&ac#v)tN_gm2J~szU12Xwa~=g-P+Y63+!u=g&!-K z?vcsXNm!dpCxlS3hSLd=R1T*TBGdJ!1s(Fw1G+lTe8 zk&ddZB7t?PV|T)(y~>(S1gPiiz8IewJW9EIQHNBXue+UagIKJf6SR13W=^0`T0>3k zdJ#`ku|y~AI-MM$m zbI#hnW%r3kY(Mmz-8a?O#rHlyi*9^bhx^%5;pet3V9H6JWOv^oOnGQt%k^m6dvws0 zjem5I3!~3IUO&FbK1T?-uA~5V9Ii3OD-(%-QJtIOWcBdb^GVkqukH53C(|$S2lf=* z87B=6eIRF@G_VilRFlu6a*u$0{EmTu#6Gn`XP=-ju+O&b+oo4XA(-~Zu8OsbdqDo1t#mHfqhKj1*X@a%JYMFenpg8u{rx_sW^2m`D7Kj>Ln#!C|lwmYo_L(o!fU#{{p2u zw(po;+k_w1NV|BK+CWoU|H$BxN5Y2Y6Ve#i7WRJnb!x;+Iz80oak zU#MGMT|MEL$?EFfzf|tiuBFWkxs!&i%-56Utj))rrGVY;{l^&``Nw^JkZC9KkHy^Q zpIl@C|CAj@k;Fg9Nc=d-}+%I4qqArq=wa9?W2Wu_H(xH zYlIhE9HEbL{$EG9dwhhu+X%~3jiZ=GIoa(-IjytoS}aC6v$-1>yXLy?3OZn4Pw&fI zw|aK+!Rgt_YgErpen%|Ivy(@NN8_`TAJcE_KdkJ$Uvouq?w{&kU}5g&#kgBuAL7Mw zspDU+q#AeQIlf8rFLDeqFm@Q2bYlkYaxGwB@{C~Mmj*$RfnOHv%dqaNR9^S@SCcgS z7#w%QU5~q2aK*SA8rxAeCtK9DmO!@cxZ5k_j$}(SD{I$*Y?oiL^;RlAIKPbGic_6z z(Oo&5Y>{6%4kX#WMsn0wuO(^t(R&#N<2ujL{O__FL2iX^^7M&e8A2av2C=Swoi@ioicj;~ohXUZXIHojIlGEe&W zn#t1m8s~L?e9ijJE}3F{Et^M=uYF#B@AqMS2(Hp%d@VD@o8=NyyhF(#Q@mA(g2^s4=0ircFAAX6Z?A_Qj&bXN{%3glOg1IZNcl^pfe`$!so^q2zU z@=QVLC72=?E104(r$6tdb$}_}B@u}!*d1buu8x{1dXBo$Wtie$rJ~OioVtCcK!DZ{ zME3}$;3fo9{2S@|TeO8KzM7c=2TVa4n1XU0Q*h0~6n+IGATdR)(3v7A9KjT>aCP

SUb)XWQGiuGhnTiiG1%fL= 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

Z*#6>7Os&6tbM%ht)Q*jB(j_R9^OHp=I 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%0D{95*`92gqWpgny22|G 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 literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json new file mode 100644 index 000000000000..f10b841bc9ed --- /dev/null +++ b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json @@ -0,0 +1,2486 @@ +{ + "runtimeTarget": { + "name": ".NETStandard,Version=v2.0/", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETStandard,Version=v2.0": {}, + ".NETStandard,Version=v2.0/": { + "Microsoft.Azure.PowerShell.Cmdlets.Accounts/1.0.0": { + "dependencies": { + "Azure.Core": "1.7.0", + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.4.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication": "1.0.0", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Authentication.ResourceManager": "1.0.0", + "Microsoft.Azure.PowerShell.Authenticators": "1.0.0", + "Microsoft.Azure.PowerShell.Clients.Aks": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Authorization": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Compute": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.KeyVault": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Monitor": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Network": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.PolicyInsights": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Storage.Management": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Websites": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Storage": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Strategies": "1.3.29-preview", + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "NETStandard.Library": "2.0.3", + "Newtonsoft.Json": "10.0.3", + "PowerShellStandard.Library": "5.1.0", + "System.Security.Permissions": "4.5.0" + }, + "runtime": { + "Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll": {} + } + }, + "Azure.Core/1.7.0": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.0.0", + "System.Buffers": "4.5.0", + "System.Diagnostics.DiagnosticSource": "4.6.0", + "System.Memory": "4.5.3", + "System.Numerics.Vectors": "4.5.0", + "System.Text.Json": "4.6.0", + "System.Threading.Tasks.Extensions": "4.5.2" + }, + "runtime": { + "lib/netstandard2.0/Azure.Core.dll": { + "assemblyVersion": "1.7.0.0", + "fileVersion": "1.700.20.61402" + } + } + }, + "Azure.Identity/1.4.0-beta.1": { + "dependencies": { + "Azure.Core": "1.7.0", + "Microsoft.Identity.Client": "4.21.0", + "Microsoft.Identity.Client.Extensions.Msal": "2.16.2", + "System.Memory": "4.5.3", + "System.Security.Cryptography.ProtectedData": "4.5.0", + "System.Text.Json": "4.6.0", + "System.Threading.Tasks.Extensions": "4.5.2" + }, + "runtime": { + "lib/netstandard2.0/Azure.Identity.dll": { + "assemblyVersion": "1.4.0.0", + "fileVersion": "1.400.20.51503" + } + } + }, + "Hyak.Common/1.2.2": { + "dependencies": { + "NETStandard.Library": "2.0.3", + "Newtonsoft.Json": "10.0.3", + "System.Reflection": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.4/Hyak.Common.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.2.2.0" + } + } + }, + "Microsoft.ApplicationInsights/2.4.0": { + "dependencies": { + "NETStandard.Library": "2.0.3", + "System.Diagnostics.DiagnosticSource": "4.6.0", + "System.Diagnostics.StackTrace": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/Microsoft.ApplicationInsights.dll": { + "assemblyVersion": "2.4.0.0", + "fileVersion": "2.4.0.32153" + } + } + }, + "Microsoft.Azure.Common/2.2.1": { + "dependencies": { + "Hyak.Common": "1.2.2", + "NETStandard.Library": "2.0.3" + }, + "runtime": { + "lib/netstandard1.4/Microsoft.Azure.Common.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.2.1.0" + } + } + }, + "Microsoft.Azure.PowerShell.Authentication.Abstractions/1.3.29-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Aks/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Aks.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Authorization/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Authorization.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Compute/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Compute.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac/1.3.29-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.29-preview", + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.KeyVault/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3", + "System.Collections.NonGeneric": "4.3.0", + "System.Collections.Specialized": "4.3.0", + "System.Reflection": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.KeyVault.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Monitor/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3", + "System.Collections.Specialized": "4.3.0", + "System.Reflection": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Monitor.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Network/1.3.29-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.29-preview", + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Network.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.PolicyInsights/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.ResourceManager/1.3.29-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.29-preview", + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Storage.Management/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "System.Collections.NonGeneric": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Websites/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3", + "System.Collections.Specialized": "4.3.0", + "System.Reflection": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Websites.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Common/1.3.29-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.4.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.29-preview", + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Common.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Storage/1.3.29-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.29-preview", + "Microsoft.Rest.ClientRuntime": "2.3.20" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Storage.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Azure.PowerShell.Strategies/1.3.29-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Strategies.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.29.0" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/1.0.0": { + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.2" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "4.700.19.46214" + } + } + }, + "Microsoft.CSharp/4.5.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.CSharp.dll": { + "assemblyVersion": "4.0.4.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "Microsoft.Identity.Client/4.21.0": { + "dependencies": { + "Microsoft.CSharp": "4.5.0", + "NETStandard.Library": "2.0.3", + "System.ComponentModel.TypeConverter": "4.3.0", + "System.Diagnostics.Process": "4.3.0", + "System.Dynamic.Runtime": "4.3.0", + "System.Private.Uri": "4.3.2", + "System.Runtime.Serialization.Formatters": "4.3.0", + "System.Runtime.Serialization.Json": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XDocument": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/Microsoft.Identity.Client.dll": { + "assemblyVersion": "4.21.0.0", + "fileVersion": "4.21.0.0" + } + } + }, + "Microsoft.Identity.Client.Extensions.Msal/2.16.2": { + "dependencies": { + "Microsoft.Identity.Client": "4.21.0", + "System.Security.Cryptography.ProtectedData": "4.5.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.dll": { + "assemblyVersion": "2.16.2.0", + "fileVersion": "2.16.2.0" + } + } + }, + "Microsoft.NETCore.Platforms/1.1.1": {}, + "Microsoft.NETCore.Targets/1.1.3": {}, + "Microsoft.Rest.ClientRuntime/2.3.20": { + "dependencies": { + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Rest.ClientRuntime.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.3.20.0" + } + } + }, + "Microsoft.Rest.ClientRuntime.Azure/3.3.19": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Rest.ClientRuntime.Azure.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "3.3.18.0" + } + } + }, + "Microsoft.Win32.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "Microsoft.Win32.Registry/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + } + }, + "NETStandard.Library/2.0.3": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1" + } + }, + "Newtonsoft.Json/10.0.3": { + "dependencies": { + "Microsoft.CSharp": "4.5.0", + "NETStandard.Library": "2.0.3", + "System.ComponentModel.TypeConverter": "4.3.0", + "System.Runtime.Serialization.Formatters": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/Newtonsoft.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.3.21018" + } + } + }, + "PowerShellStandard.Library/5.1.0": {}, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.native.System/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "runtime.native.System.IO.Compression/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "runtime.native.System.Net.Http/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "dependencies": { + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" + } + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "System.Buffers/4.5.0": { + "runtime": { + "lib/netstandard2.0/System.Buffers.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.Collections/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Collections.Concurrent/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Collections.Concurrent.dll": { + "assemblyVersion": "4.0.13.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Collections.Immutable/1.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.0/System.Collections.Immutable.dll": { + "assemblyVersion": "1.2.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Collections.NonGeneric/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Collections.NonGeneric.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Collections.Specialized/4.3.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Collections.Specialized.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.ComponentModel/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.ComponentModel.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.ComponentModel.Primitives/4.3.0": { + "dependencies": { + "System.ComponentModel": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.0/System.ComponentModel.Primitives.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.ComponentModel.TypeConverter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.NonGeneric": "4.3.0", + "System.Collections.Specialized": "4.3.0", + "System.ComponentModel": "4.3.0", + "System.ComponentModel.Primitives": "4.3.0", + "System.Globalization": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.5/System.ComponentModel.TypeConverter.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Diagnostics.Debug/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.DiagnosticSource/4.6.0": { + "dependencies": { + "System.Memory": "4.5.3" + }, + "runtime": { + "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "4.0.4.0", + "fileVersion": "4.700.19.46214" + } + } + }, + "System.Diagnostics.Process/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.Win32.Primitives": "4.3.0", + "Microsoft.Win32.Registry": "4.3.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Thread": "4.3.0", + "System.Threading.ThreadPool": "4.3.0", + "runtime.native.System": "4.3.0" + } + }, + "System.Diagnostics.StackTrace/4.3.0": { + "dependencies": { + "System.IO.FileSystem": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Metadata": "1.4.1", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Diagnostics.StackTrace.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Diagnostics.Tools/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.Tracing/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Dynamic.Runtime/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Dynamic.Runtime.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Globalization/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Calendars/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Globalization": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + } + }, + "System.IO/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.Compression/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Buffers": "4.5.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.IO.Compression": "4.3.0" + } + }, + "System.IO.FileSystem/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.IO": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Linq/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Linq.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Linq.Expressions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Linq.Expressions.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Memory/4.5.3": { + "dependencies": { + "System.Buffers": "4.5.0", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.6.0" + }, + "runtime": { + "lib/netstandard2.0/System.Memory.dll": { + "assemblyVersion": "4.0.1.1", + "fileVersion": "4.6.27617.2" + } + } + }, + "System.Numerics.Vectors/4.5.0": { + "runtime": { + "lib/netstandard2.0/System.Numerics.Vectors.dll": { + "assemblyVersion": "4.1.4.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.ObjectModel/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.ObjectModel.dll": { + "assemblyVersion": "4.0.13.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Private.DataContractSerialization/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XDocument": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Private.DataContractSerialization.dll": { + "assemblyVersion": "4.1.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Private.Uri/4.3.2": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "System.Reflection/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.IO": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Reflection.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Metadata/1.4.1": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.Immutable": "1.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.IO": "4.3.0", + "System.IO.Compression": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.1/System.Reflection.Metadata.dll": { + "assemblyVersion": "1.4.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Reflection.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.TypeExtensions/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.5/System.Reflection.TypeExtensions.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Resources.ResourceManager/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "System.Runtime.CompilerServices.Unsafe/4.6.0": { + "runtime": { + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "4.0.5.0", + "fileVersion": "4.700.19.46214" + } + } + }, + "System.Runtime.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.Handles/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.InteropServices/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Runtime.Numerics/4.3.0": { + "dependencies": { + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Runtime.Numerics.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Runtime.Serialization.Formatters/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0" + }, + "runtime": { + "lib/netstandard1.4/System.Runtime.Serialization.Formatters.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Runtime.Serialization.Json/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Private.DataContractSerialization": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Runtime.Serialization.Json.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Runtime.Serialization.Primitives/4.3.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Runtime.Serialization.Primitives.dll": { + "assemblyVersion": "4.1.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Security.AccessControl/4.5.0": { + "dependencies": { + "System.Security.Principal.Windows": "4.5.0" + }, + "runtime": { + "lib/netstandard2.0/System.Security.AccessControl.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.Apple": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.Cng/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Security.Cryptography.Csp/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "1.0.24212.1" + } + } + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Security.Cryptography.ProtectedData/4.5.0": { + "dependencies": { + "System.Memory": "4.5.3" + }, + "runtime": { + "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Cng": "4.3.0", + "System.Security.Cryptography.Csp": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Permissions/4.5.0": { + "dependencies": { + "System.Security.AccessControl": "4.5.0" + }, + "runtime": { + "lib/netstandard2.0/System.Security.Permissions.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.Security.Principal.Windows/4.5.0": { + "runtime": { + "lib/netstandard2.0/System.Security.Principal.Windows.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.Security.SecureString/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Text.Encoding/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Text.Encoding.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Text.Encodings.Web/4.6.0": { + "dependencies": { + "System.Memory": "4.5.3" + }, + "runtime": { + "lib/netstandard2.0/System.Text.Encodings.Web.dll": { + "assemblyVersion": "4.0.4.0", + "fileVersion": "4.700.19.46214" + } + } + }, + "System.Text.Json/4.6.0": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.0.0", + "System.Buffers": "4.5.0", + "System.Memory": "4.5.3", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.6.0", + "System.Text.Encodings.Web": "4.6.0", + "System.Threading.Tasks.Extensions": "4.5.2" + }, + "runtime": { + "lib/netstandard2.0/System.Text.Json.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.700.19.46214" + } + } + }, + "System.Text.RegularExpressions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Text.RegularExpressions.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Threading/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Threading.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Threading.Tasks/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Threading.Tasks.Extensions/4.5.2": { + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.6.0" + }, + "runtime": { + "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll": { + "assemblyVersion": "4.2.0.0", + "fileVersion": "4.6.27129.4" + } + } + }, + "System.Threading.Thread/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Threading.Thread.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Threading.ThreadPool/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Threading.ThreadPool.dll": { + "assemblyVersion": "4.0.11.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.ReaderWriter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Tasks.Extensions": "4.5.2" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.ReaderWriter.dll": { + "assemblyVersion": "4.1.0.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.XDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XDocument.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.XmlDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XmlDocument.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.XmlSerializer/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XmlSerializer.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "Microsoft.Azure.PowerShell.Authentication/1.0.0": { + "dependencies": { + "Azure.Core": "1.7.0", + "Azure.Identity": "1.4.0-beta.1", + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.4.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Aks": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Authorization": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Compute": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.KeyVault": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Monitor": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Network": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.PolicyInsights": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Storage.Management": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Websites": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Storage": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Strategies": "1.3.29-preview", + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "Microsoft.Azure.PowerShell.Authentication.dll": {} + } + }, + "Microsoft.Azure.PowerShell.Authentication.ResourceManager/1.0.0": { + "dependencies": { + "Azure.Core": "1.7.0", + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.4.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication": "1.0.0", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Aks": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Authorization": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Compute": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.KeyVault": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Monitor": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Network": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.PolicyInsights": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Storage.Management": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Clients.Websites": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Storage": "1.3.29-preview", + "Microsoft.Azure.PowerShell.Strategies": "1.3.29-preview", + "Microsoft.Rest.ClientRuntime": "2.3.20", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll": {} + } + }, + "Microsoft.Azure.PowerShell.Authenticators/1.0.0": { + "dependencies": { + "Azure.Identity": "1.4.0-beta.1", + "Microsoft.Azure.PowerShell.Authentication": "1.0.0" + }, + "runtime": { + "Microsoft.Azure.PowerShell.Authenticators.dll": {} + } + } + } + }, + "libraries": { + "Microsoft.Azure.PowerShell.Cmdlets.Accounts/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Azure.Core/1.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-W0eCNnkrxJqRIvWIQoX3LD1q3VJsN/0j+p/B0FUV9NGuD+djY1c6x9cLmvc4C3zke2LH6JLiaArsoKC7pVQXkQ==", + "path": "azure.core/1.7.0", + "hashPath": "azure.core.1.7.0.nupkg.sha512" + }, + "Azure.Identity/1.4.0-beta.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-y0N862gWpuL5GgHFCUz02JNbOrP8lG/rYAmgN9OgUs4wwVZXIvvVa33xjNjYrkMqo63omisjIzQgj5ZBrTajRQ==", + "path": "azure.identity/1.4.0-beta.1", + "hashPath": "azure.identity.1.4.0-beta.1.nupkg.sha512" + }, + "Hyak.Common/1.2.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uZpnFn48nSQwHcO0/GSBZ7ExaO0sTXKv8KariXXEWLaB4Q3AeQoprYG4WpKsCT0ByW3YffETivgc5rcH5RRDvQ==", + "path": "hyak.common/1.2.2", + "hashPath": "hyak.common.1.2.2.nupkg.sha512" + }, + "Microsoft.ApplicationInsights/2.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4dX/zu3Psz9oM3ErU64xfOHuSxOwMxN6q5RabSkeYbX42Yn6dR/kDToqjs+txCRjrfHUxyYjfeJHu+MbCfvAsg==", + "path": "microsoft.applicationinsights/2.4.0", + "hashPath": "microsoft.applicationinsights.2.4.0.nupkg.sha512" + }, + "Microsoft.Azure.Common/2.2.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-abzRooh4ACKjzAKxRB6r+SHKW3d+IrLcgtVG81D+3kQU/OMjAZS1oDp9CDalhSbmxa84u0MHM5N+AKeTtKPoiw==", + "path": "microsoft.azure.common/2.2.1", + "hashPath": "microsoft.azure.common.2.2.1.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Authentication.Abstractions/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RdUhLPBvjvXxyyp76mb6Nv7x79pKbRqztjvgPFD9fW9UI6SdbRmt9RVUEp1k+5YzJCC8JgbT28qRUw1RVedydw==", + "path": "microsoft.azure.powershell.authentication.abstractions/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.authentication.abstractions.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Aks/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4Hf9D6WnplKj9ykxOLgPcR496FHoYA8e5yeqnNKMZZ4ReaNFofgZFzqeUtQhyWLVx8XxYqPbjxsa+DD7SPtOAQ==", + "path": "microsoft.azure.powershell.clients.aks/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.aks.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Authorization/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/5UKtgUgVk7BYevse2kRiY15gkPJNjfpV1N8nt1AcwOPBTlMMQVGii/EvdX4Bra1Yb218aB/1mH4/jAnnpnI6w==", + "path": "microsoft.azure.powershell.clients.authorization/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.authorization.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Compute/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ht6HzlCxuVuV97XDsx9Cutc3L/B8Xiqps8JjqGTvdC5dqFatQY4c1pNW8/aKo8aBx2paxMZX5Hy+AOJ+6AEXnA==", + "path": "microsoft.azure.powershell.clients.compute/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.compute.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vEDiqz545Bw0tiDAzMzCG9cY/Vam8btUVvRgN/nF42xWAAJ1Yk0uaCzb8s/OemfL6VvKTYogdDXofxCul8B4Ng==", + "path": "microsoft.azure.powershell.clients.graph.rbac/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.graph.rbac.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.KeyVault/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7O7Ta7XwsLZTY/fjAIdmqlXlZq3Gd6rs8qUJ/WJuBZxGr2TqW2Rz6d+ncLHD2qnKdss2c8LEs9AkxWvorGB9tQ==", + "path": "microsoft.azure.powershell.clients.keyvault/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.keyvault.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Monitor/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PsvNOLl2yKLtZ/1gn1/07869OdOZGnJasQdDjbOlchwmPNPwC+TZnX7JiAxen0oQwaGVfvwMM1eF/OgCZifIkQ==", + "path": "microsoft.azure.powershell.clients.monitor/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.monitor.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Network/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jAl1BX+EbxSoNB/DMynPrghhC2/vINi1ekx5Acv8P0XizkTyrjb84i+e1blthx31JTI+in8jYqzKlT+IgsCZ9w==", + "path": "microsoft.azure.powershell.clients.network/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.network.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.PolicyInsights/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3mBhSdr0SfGWmyOZBud68hDUZPIYRPENfRGnL8BO6x/yKc5d0pAzWux93bfpRHDs8cbN2cqAo0roeTIlCqu6rA==", + "path": "microsoft.azure.powershell.clients.policyinsights/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.policyinsights.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.ResourceManager/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UR7YcvWewBTetKgyNXTO5S+PN+k3rTfmtYd1dgwWwJQMlfQ7/E3OrB1sEEzGJi4EmFOmbE7iK81chspa6S/xfQ==", + "path": "microsoft.azure.powershell.clients.resourcemanager/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.resourcemanager.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Storage.Management/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EXtwSeiIl4XZuRdyjRGk7TEppF/StBud0r+mlGOC8oWK9IgX6WEhAtl+i5RdOBiRnwR2jQryTszh1c1UH7Qx+Q==", + "path": "microsoft.azure.powershell.clients.storage.management/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.storage.management.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Websites/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WF4JLPxX8FplnsGMGrc77E9IMfu1FRp+meKQxlKlBCqzIf2es1p0SCzUIPt5/tPHEyHwxSso7qPgGPW0JC5IDA==", + "path": "microsoft.azure.powershell.clients.websites/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.clients.websites.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Common/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cOeRbagUGr2kZkl7yDnMXjTuuYJMZPYJQI3uokDElttWcBCZ7zONQcqU1e6Mvr+EGKbiuqRPG8laGAAJKxkzfA==", + "path": "microsoft.azure.powershell.common/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.common.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Storage/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yqyONP4F+HNqeDSHf6PMAvQnULqeVms1Bppt9Ts2derYBoOoFyPCMa9/hDfZqn+LbW15iFYf/75BJ9zr9Bnk5A==", + "path": "microsoft.azure.powershell.storage/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.storage.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Strategies/1.3.29-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Mpfp1394fimEdtEFVbKaEUsBdimH/E8VuijcTeQSqinq+2HxhkUMnKqWEsQPSm0smvRQFAXdj33vPpy8uDjUZA==", + "path": "microsoft.azure.powershell.strategies/1.3.29-preview", + "hashPath": "microsoft.azure.powershell.strategies.1.3.29-preview.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-K63Y4hORbBcKLWH5wnKgzyn7TOfYzevIEwIedQHBIkmkEBA9SCqgvom+XTuE+fAFGvINGkhFItaZ2dvMGdT5iw==", + "path": "microsoft.bcl.asyncinterfaces/1.0.0", + "hashPath": "microsoft.bcl.asyncinterfaces.1.0.0.nupkg.sha512" + }, + "Microsoft.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", + "path": "microsoft.csharp/4.5.0", + "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.Identity.Client/4.21.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qVoSUGfIynHWF7Lk9dRJN04AOE8pHabRja6OsiILyirTHxhKLrZ6Ixcbuge0z080kKch3vgy1QpQ53wVNbkBYw==", + "path": "microsoft.identity.client/4.21.0", + "hashPath": "microsoft.identity.client.4.21.0.nupkg.sha512" + }, + "Microsoft.Identity.Client.Extensions.Msal/2.16.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1xIcnfuFkLXP0oeh0VeH06Cs8hl57ZtCQQGPdr/i0jMwiiTgmW0deHh/4E0rop0ZrowapmO5My367cR+bwaDOQ==", + "path": "microsoft.identity.client.extensions.msal/2.16.2", + "hashPath": "microsoft.identity.client.extensions.msal.2.16.2.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TMBuzAHpTenGbGgk0SMTwyEkyijY/Eae4ZGsFNYJvAr/LDn1ku3Etp3FPxChmDp5HHF3kzJuoaa08N0xjqAJfQ==", + "path": "microsoft.netcore.platforms/1.1.1", + "hashPath": "microsoft.netcore.platforms.1.1.1.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.1.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==", + "path": "microsoft.netcore.targets/1.1.3", + "hashPath": "microsoft.netcore.targets.1.1.3.nupkg.sha512" + }, + "Microsoft.Rest.ClientRuntime/2.3.20": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bw/H1nO4JdnhTagPHWIFQwtlQ6rb2jqw5RTrqPsPqzrjhJxc7P6MyNGdf4pgHQdzdpBSNOfZTEQifoUkxmzYXQ==", + "path": "microsoft.rest.clientruntime/2.3.20", + "hashPath": "microsoft.rest.clientruntime.2.3.20.nupkg.sha512" + }, + "Microsoft.Rest.ClientRuntime.Azure/3.3.19": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+NVBWvRXNwaAPTZUxjUlQggsrf3X0GbiRoxYfgc3kG9E55ZxZxvZPT3nIfC4DNqzGSXUEvmLbckdXgBBzGdUaA==", + "path": "microsoft.rest.clientruntime.azure/3.3.19", + "hashPath": "microsoft.rest.clientruntime.azure.3.3.19.nupkg.sha512" + }, + "Microsoft.Win32.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", + "path": "microsoft.win32.primitives/4.3.0", + "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512" + }, + "Microsoft.Win32.Registry/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Lw1/VwLH1yxz6SfFEjVRCN0pnflLEsWgnV4qsdJ512/HhTwnKXUG+zDQ4yTO3K/EJQemGoNaBHX5InISNKTzUQ==", + "path": "microsoft.win32.registry/4.3.0", + "hashPath": "microsoft.win32.registry.4.3.0.nupkg.sha512" + }, + "NETStandard.Library/2.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "path": "netstandard.library/2.0.3", + "hashPath": "netstandard.library.2.0.3.nupkg.sha512" + }, + "Newtonsoft.Json/10.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hSXaFmh7hNCuEoC4XNY5DrRkLDzYHqPx/Ik23R4J86Z7PE/Y6YidhG602dFVdLBRSdG6xp9NabH3dXpcoxWvww==", + "path": "newtonsoft.json/10.0.3", + "hashPath": "newtonsoft.json.10.0.3.nupkg.sha512" + }, + "PowerShellStandard.Library/5.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iYaRvQsM1fow9h3uEmio+2m2VXfulgI16AYHaTZ8Sf7erGe27Qc8w/h6QL5UPuwv1aXR40QfzMEwcCeiYJp2cw==", + "path": "powershellstandard.library/5.1.0", + "hashPath": "powershellstandard.library.5.1.0.nupkg.sha512" + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==", + "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==", + "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==", + "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.native.System/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "path": "runtime.native.system/4.3.0", + "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" + }, + "runtime.native.System.IO.Compression/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", + "path": "runtime.native.system.io.compression/4.3.0", + "hashPath": "runtime.native.system.io.compression.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Net.Http/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", + "path": "runtime.native.system.net.http/4.3.0", + "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", + "path": "runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==", + "path": "runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==", + "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==", + "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==", + "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==", + "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==", + "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==", + "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "System.Buffers/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pL2ChpaRRWI/p4LXyy4RgeWlYF2sgfj/pnVMvBqwNFr5cXg7CXNnWZWxrOONLg8VGdFB8oB+EG2Qw4MLgTOe+A==", + "path": "system.buffers/4.5.0", + "hashPath": "system.buffers.4.5.0.nupkg.sha512" + }, + "System.Collections/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", + "path": "system.collections/4.3.0", + "hashPath": "system.collections.4.3.0.nupkg.sha512" + }, + "System.Collections.Concurrent/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", + "path": "system.collections.concurrent/4.3.0", + "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" + }, + "System.Collections.Immutable/1.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zukBRPUuNxwy9m4TGWLxKAnoiMc9+B+8VXeXVyPiBPvOd7yLgAlZ1DlsRWJjMx4VsvhhF2+6q6kO2GRbPja6hA==", + "path": "system.collections.immutable/1.3.0", + "hashPath": "system.collections.immutable.1.3.0.nupkg.sha512" + }, + "System.Collections.NonGeneric/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", + "path": "system.collections.nongeneric/4.3.0", + "hashPath": "system.collections.nongeneric.4.3.0.nupkg.sha512" + }, + "System.Collections.Specialized/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Epx8PoVZR0iuOnJJDzp7pWvdfMMOAvpUo95pC4ScH2mJuXkKA2Y4aR3cG9qt2klHgSons1WFh4kcGW7cSXvrxg==", + "path": "system.collections.specialized/4.3.0", + "hashPath": "system.collections.specialized.4.3.0.nupkg.sha512" + }, + "System.ComponentModel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==", + "path": "system.componentmodel/4.3.0", + "hashPath": "system.componentmodel.4.3.0.nupkg.sha512" + }, + "System.ComponentModel.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-j8GUkCpM8V4d4vhLIIoBLGey2Z5bCkMVNjEZseyAlm4n5arcsJOeI3zkUP+zvZgzsbLTYh4lYeP/ZD/gdIAPrw==", + "path": "system.componentmodel.primitives/4.3.0", + "hashPath": "system.componentmodel.primitives.4.3.0.nupkg.sha512" + }, + "System.ComponentModel.TypeConverter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-16pQ6P+EdhcXzPiEK4kbA953Fu0MNG2ovxTZU81/qsCd1zPRsKc3uif5NgvllCY598k6bI0KUyKW8fanlfaDQg==", + "path": "system.componentmodel.typeconverter/4.3.0", + "hashPath": "system.componentmodel.typeconverter.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", + "path": "system.diagnostics.debug/4.3.0", + "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-mbBgoR0rRfl2uimsZ2avZY8g7Xnh1Mza0rJZLPcxqiMWlkGukjmRkuMJ/er+AhQuiRIh80CR/Hpeztr80seV5g==", + "path": "system.diagnostics.diagnosticsource/4.6.0", + "hashPath": "system.diagnostics.diagnosticsource.4.6.0.nupkg.sha512" + }, + "System.Diagnostics.Process/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==", + "path": "system.diagnostics.process/4.3.0", + "hashPath": "system.diagnostics.process.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.StackTrace/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BiHg0vgtd35/DM9jvtaC1eKRpWZxr0gcQd643ABG7GnvSlf5pOkY2uyd42mMOJoOmKvnpNj0F4tuoS1pacTwYw==", + "path": "system.diagnostics.stacktrace/4.3.0", + "hashPath": "system.diagnostics.stacktrace.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", + "path": "system.diagnostics.tools/4.3.0", + "hashPath": "system.diagnostics.tools.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Tracing/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", + "path": "system.diagnostics.tracing/4.3.0", + "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" + }, + "System.Dynamic.Runtime/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-SNVi1E/vfWUAs/WYKhE9+qlS6KqK0YVhnlT0HQtr8pMIA8YX3lwy3uPMownDwdYISBdmAF/2holEIldVp85Wag==", + "path": "system.dynamic.runtime/4.3.0", + "hashPath": "system.dynamic.runtime.4.3.0.nupkg.sha512" + }, + "System.Globalization/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", + "path": "system.globalization/4.3.0", + "hashPath": "system.globalization.4.3.0.nupkg.sha512" + }, + "System.Globalization.Calendars/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", + "path": "system.globalization.calendars/4.3.0", + "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" + }, + "System.Globalization.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", + "path": "system.globalization.extensions/4.3.0", + "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" + }, + "System.IO/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "path": "system.io/4.3.0", + "hashPath": "system.io.4.3.0.nupkg.sha512" + }, + "System.IO.Compression/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", + "path": "system.io.compression/4.3.0", + "hashPath": "system.io.compression.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", + "path": "system.io.filesystem/4.3.0", + "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", + "path": "system.io.filesystem.primitives/4.3.0", + "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" + }, + "System.Linq/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", + "path": "system.linq/4.3.0", + "hashPath": "system.linq.4.3.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", + "path": "system.linq.expressions/4.3.0", + "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" + }, + "System.Memory/4.5.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==", + "path": "system.memory/4.5.3", + "hashPath": "system.memory.4.5.3.nupkg.sha512" + }, + "System.Numerics.Vectors/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==", + "path": "system.numerics.vectors/4.5.0", + "hashPath": "system.numerics.vectors.4.5.0.nupkg.sha512" + }, + "System.ObjectModel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", + "path": "system.objectmodel/4.3.0", + "hashPath": "system.objectmodel.4.3.0.nupkg.sha512" + }, + "System.Private.DataContractSerialization/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yDaJ2x3mMmjdZEDB4IbezSnCsnjQ4BxinKhRAaP6kEgL6Bb6jANWphs5SzyD8imqeC/3FxgsuXT6ykkiH1uUmA==", + "path": "system.private.datacontractserialization/4.3.0", + "hashPath": "system.private.datacontractserialization.4.3.0.nupkg.sha512" + }, + "System.Private.Uri/4.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-o1+7RJnu3Ik3PazR7Z7tJhjPdE000Eq2KGLLWhqJJKXj04wrS8lwb1OFtDF9jzXXADhUuZNJZlPc98uwwqmpFA==", + "path": "system.private.uri/4.3.2", + "hashPath": "system.private.uri.4.3.2.nupkg.sha512" + }, + "System.Reflection/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "path": "system.reflection/4.3.0", + "hashPath": "system.reflection.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", + "path": "system.reflection.emit/4.3.0", + "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", + "path": "system.reflection.emit.ilgeneration/4.3.0", + "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", + "path": "system.reflection.emit.lightweight/4.3.0", + "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" + }, + "System.Reflection.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", + "path": "system.reflection.extensions/4.3.0", + "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" + }, + "System.Reflection.Metadata/1.4.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tc2ZyJgweHCLci5oQGuhQn9TD0Ii9DReXkHtZm3aAGp8xe40rpRjiTbMXOtZU+fr0BOQ46goE9+qIqRGjR9wGg==", + "path": "system.reflection.metadata/1.4.1", + "hashPath": "system.reflection.metadata.1.4.1.nupkg.sha512" + }, + "System.Reflection.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "path": "system.reflection.primitives/4.3.0", + "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", + "path": "system.reflection.typeextensions/4.3.0", + "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "path": "system.resources.resourcemanager/4.3.0", + "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" + }, + "System.Runtime/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", + "path": "system.runtime/4.3.0", + "hashPath": "system.runtime.4.3.0.nupkg.sha512" + }, + "System.Runtime.CompilerServices.Unsafe/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HxozeSlipUK7dAroTYwIcGwKDeOVpQnJlpVaOkBz7CM4TsE5b/tKlQBZecTjh6FzcSbxndYaxxpsBMz+wMJeyw==", + "path": "system.runtime.compilerservices.unsafe/4.6.0", + "hashPath": "system.runtime.compilerservices.unsafe.4.6.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", + "path": "system.runtime.extensions/4.3.0", + "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" + }, + "System.Runtime.Handles/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", + "path": "system.runtime.handles/4.3.0", + "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" + }, + "System.Runtime.InteropServices/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "path": "system.runtime.interopservices/4.3.0", + "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" + }, + "System.Runtime.Numerics/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", + "path": "system.runtime.numerics/4.3.0", + "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Formatters/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KT591AkTNFOTbhZlaeMVvfax3RqhH1EJlcwF50Wm7sfnBLuHiOeZRRKrr1ns3NESkM20KPZ5Ol/ueMq5vg4QoQ==", + "path": "system.runtime.serialization.formatters/4.3.0", + "hashPath": "system.runtime.serialization.formatters.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Json/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CpVfOH0M/uZ5PH+M9+Gu56K0j9lJw3M+PKRegTkcrY/stOIvRUeonggxNrfBYLA5WOHL2j15KNJuTuld3x4o9w==", + "path": "system.runtime.serialization.json/4.3.0", + "hashPath": "system.runtime.serialization.json.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Wz+0KOukJGAlXjtKr+5Xpuxf8+c8739RI1C+A2BoQZT+wMCCoMDDdO8/4IRHfaVINqL78GO8dW8G2lW/e45Mcw==", + "path": "system.runtime.serialization.primitives/4.3.0", + "hashPath": "system.runtime.serialization.primitives.4.3.0.nupkg.sha512" + }, + "System.Security.AccessControl/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==", + "path": "system.security.accesscontrol/4.5.0", + "hashPath": "system.security.accesscontrol.4.5.0.nupkg.sha512" + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", + "path": "system.security.cryptography.algorithms/4.3.0", + "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Cng/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", + "path": "system.security.cryptography.cng/4.3.0", + "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Csp/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", + "path": "system.security.cryptography.csp/4.3.0", + "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", + "path": "system.security.cryptography.encoding/4.3.0", + "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", + "path": "system.security.cryptography.openssl/4.3.0", + "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", + "path": "system.security.cryptography.primitives/4.3.0", + "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.ProtectedData/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==", + "path": "system.security.cryptography.protecteddata/4.5.0", + "hashPath": "system.security.cryptography.protecteddata.4.5.0.nupkg.sha512" + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", + "path": "system.security.cryptography.x509certificates/4.3.0", + "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" + }, + "System.Security.Permissions/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==", + "path": "system.security.permissions/4.5.0", + "hashPath": "system.security.permissions.4.5.0.nupkg.sha512" + }, + "System.Security.Principal.Windows/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==", + "path": "system.security.principal.windows/4.5.0", + "hashPath": "system.security.principal.windows.4.5.0.nupkg.sha512" + }, + "System.Security.SecureString/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PnXp38O9q/2Oe4iZHMH60kinScv6QiiL2XH54Pj2t0Y6c2zKPEiAZsM/M3wBOHLNTBDFP0zfy13WN2M0qFz5jg==", + "path": "system.security.securestring/4.3.0", + "hashPath": "system.security.securestring.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "path": "system.text.encoding/4.3.0", + "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", + "path": "system.text.encoding.extensions/4.3.0", + "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" + }, + "System.Text.Encodings.Web/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BXgFO8Yi7ao7hVA/nklD0Hre1Bbce048ZqryGZVFifGNPuh+2jqF1i/jLJLMfFGZIzUOw+nCIeH24SQhghDSPw==", + "path": "system.text.encodings.web/4.6.0", + "hashPath": "system.text.encodings.web.4.6.0.nupkg.sha512" + }, + "System.Text.Json/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4F8Xe+JIkVoDJ8hDAZ7HqLkjctN/6WItJIzQaifBwClC7wmoLSda/Sv2i6i1kycqDb3hWF4JCVbpAweyOKHEUA==", + "path": "system.text.json/4.6.0", + "hashPath": "system.text.json.4.6.0.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", + "path": "system.text.regularexpressions/4.3.0", + "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" + }, + "System.Threading/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", + "path": "system.threading/4.3.0", + "hashPath": "system.threading.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "path": "system.threading.tasks/4.3.0", + "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks.Extensions/4.5.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BG/TNxDFv0svAzx8OiMXDlsHfGw623BZ8tCXw4YLhDFDvDhNUEV58jKYMGRnkbJNm7c3JNNJDiN7JBMzxRBR2w==", + "path": "system.threading.tasks.extensions/4.5.2", + "hashPath": "system.threading.tasks.extensions.4.5.2.nupkg.sha512" + }, + "System.Threading.Thread/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==", + "path": "system.threading.thread/4.3.0", + "hashPath": "system.threading.thread.4.3.0.nupkg.sha512" + }, + "System.Threading.ThreadPool/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==", + "path": "system.threading.threadpool/4.3.0", + "hashPath": "system.threading.threadpool.4.3.0.nupkg.sha512" + }, + "System.Xml.ReaderWriter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", + "path": "system.xml.readerwriter/4.3.0", + "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" + }, + "System.Xml.XDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", + "path": "system.xml.xdocument/4.3.0", + "hashPath": "system.xml.xdocument.4.3.0.nupkg.sha512" + }, + "System.Xml.XmlDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==", + "path": "system.xml.xmldocument/4.3.0", + "hashPath": "system.xml.xmldocument.4.3.0.nupkg.sha512" + }, + "System.Xml.XmlSerializer/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MYoTCP7EZ98RrANESW05J5ZwskKDoN0AuZ06ZflnowE50LTpbR5yRg3tHckTVm5j/m47stuGgCrCHWePyHS70Q==", + "path": "system.xml.xmlserializer/4.3.0", + "hashPath": "system.xml.xmlserializer.4.3.0.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Authentication/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.Azure.PowerShell.Authentication.ResourceManager/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.Azure.PowerShell.Authenticators/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll new file mode 100644 index 0000000000000000000000000000000000000000..8c8942333564614b148b4a83b0ed52a86998e3de GIT binary patch literal 430984 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 i4_K*p8s4#+J + + + + Add-AzEnvironment + Add + AzEnvironment + + Adds endpoints and metadata for an instance of Azure Resource Manager. + + + + The Add-AzEnvironment cmdlet adds endpoints and metadata to enable Azure Resource Manager cmdlets to connect with a new instance of Azure Resource Manager. The built-in environments AzureCloud and AzureChinaCloud target existing public instances of Azure Resource Manager. + + + + Add-AzEnvironment + + Name + + Specifies the name of the environment to add. + + System.String + + System.String + + + None + + + PublishSettingsFileUrl + + Specifies the URL from which .publishsettings files can be downloaded. + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + TrafficManagerDnsSuffix + + Specifies the domain-name suffix for Azure Traffic Manager services. + + System.String + + System.String + + + None + + + SqlDatabaseDnsSuffix + + Specifies the domain-name suffix for Azure SQL Database servers. + + System.String + + System.String + + + None + + + AzureDataLakeStoreFileSystemEndpointSuffix + + Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net + + System.String + + System.String + + + None + + + AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix + + Dns Suffix of Azure Data Lake Analytics job and catalog services + + System.String + + System.String + + + None + + + EnableAdfsAuthentication + + Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. + + + System.Management.Automation.SwitchParameter + + + False + + + AdTenant + + Specifies the default Active Directory tenant. + + System.String + + System.String + + + None + + + GraphAudience + + The audience for tokens authenticating with the AD Graph Endpoint. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + ServiceEndpoint + + Specifies the endpoint for Service Management (RDFE) requests. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + ManagementPortalUrl + + Specifies the URL for the Management Portal. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + ActiveDirectoryEndpoint + + Specifies the base authority for Azure Active Directory authentication. + + System.String + + System.String + + + None + + + ResourceManagerEndpoint + + Specifies the URL for Azure Resource Manager requests. + + System.String + + System.String + + + None + + + GalleryEndpoint + + Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. + + System.String + + System.String + + + None + + + ActiveDirectoryServiceEndpointResourceId + + Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. + + System.String + + System.String + + + None + + + GraphEndpoint + + Specifies the URL for Graph (Active Directory metadata) requests. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Add-AzEnvironment + + Name + + Specifies the name of the environment to add. + + System.String + + System.String + + + None + + + ARMEndpoint + + The Azure Resource Manager endpoint + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Add-AzEnvironment + + AutoDiscover + + Discovers environments via default or configured endpoint. + + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Uri + + Specifies URI of the internet resource to fetch environments. + + System.Uri + + System.Uri + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + ActiveDirectoryEndpoint + + Specifies the base authority for Azure Active Directory authentication. + + System.String + + System.String + + + None + + + ActiveDirectoryServiceEndpointResourceId + + Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. + + System.String + + System.String + + + None + + + AdTenant + + Specifies the default Active Directory tenant. + + System.String + + System.String + + + None + + + ARMEndpoint + + The Azure Resource Manager endpoint + + System.String + + System.String + + + None + + + AutoDiscover + + Discovers environments via default or configured endpoint. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix + + Dns Suffix of Azure Data Lake Analytics job and catalog services + + System.String + + System.String + + + None + + + AzureDataLakeStoreFileSystemEndpointSuffix + + Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + EnableAdfsAuthentication + + Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + GalleryEndpoint + + Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. + + System.String + + System.String + + + None + + + GraphAudience + + The audience for tokens authenticating with the AD Graph Endpoint. + + System.String + + System.String + + + None + + + GraphEndpoint + + Specifies the URL for Graph (Active Directory metadata) requests. + + System.String + + System.String + + + None + + + ManagementPortalUrl + + Specifies the URL for the Management Portal. + + System.String + + System.String + + + None + + + Name + + Specifies the name of the environment to add. + + System.String + + System.String + + + None + + + PublishSettingsFileUrl + + Specifies the URL from which .publishsettings files can be downloaded. + + System.String + + System.String + + + None + + + ResourceManagerEndpoint + + Specifies the URL for Azure Resource Manager requests. + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + ServiceEndpoint + + Specifies the endpoint for Service Management (RDFE) requests. + + System.String + + System.String + + + None + + + SqlDatabaseDnsSuffix + + Specifies the domain-name suffix for Azure SQL Database servers. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + TrafficManagerDnsSuffix + + Specifies the domain-name suffix for Azure Traffic Manager services. + + System.String + + System.String + + + None + + + Uri + + Specifies URI of the internet resource to fetch environments. + + System.Uri + + System.Uri + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.String + + + + + + + + System.Management.Automation.SwitchParameter + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + + + + + + + + + + + + + ----- Example 1: Creating and modifying a new environment ----- + PS C:\> Add-AzEnvironment -Name TestEnvironment ` + -ActiveDirectoryEndpoint TestADEndpoint ` + -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` + -ResourceManagerEndpoint TestRMEndpoint ` + -GalleryEndpoint TestGalleryEndpoint ` + -GraphEndpoint TestGraphEndpoint + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + +PS C:\> Set-AzEnvironment -Name TestEnvironment ` + -ActiveDirectoryEndpoint NewTestADEndpoint ` + -GraphEndpoint NewTestGraphEndpoint | Format-List + +Name : TestEnvironment +EnableAdfsAuthentication : False +OnPremise : False +ActiveDirectoryServiceEndpointResourceId : TestADApplicationId +AdTenant : +GalleryUrl : TestGalleryEndpoint +ManagementPortalUrl : +ServiceManagementUrl : +PublishSettingsFileUrl : +ResourceManagerUrl : TestRMEndpoint +SqlDatabaseDnsSuffix : +StorageEndpointSuffix : +ActiveDirectoryAuthority : NewTestADEndpoint +GraphUrl : NewTestGraphEndpoint +GraphEndpointResourceId : +TrafficManagerDnsSuffix : +AzureKeyVaultDnsSuffix : +DataLakeEndpointResourceId : +AzureDataLakeStoreFileSystemEndpointSuffix : +AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix : +AzureKeyVaultServiceEndpointResourceId : +AzureOperationalInsightsEndpointResourceId : +AzureOperationalInsightsEndpoint : +AzureAnalysisServicesEndpointSuffix : +AzureAttestationServiceEndpointSuffix : +AzureAttestationServiceEndpointResourceId : +AzureSynapseAnalyticsEndpointSuffix : +AzureSynapseAnalyticsEndpointResourceId : +VersionProfiles : {} +ExtendedProperties : {} +BatchEndpointResourceId : + + In this example we are creating a new Azure environment with sample endpoints using Add-AzEnvironment, and then we are changing the value of the ActiveDirectoryEndpoint and GraphEndpoint attributes of the created environment using the cmdlet Set-AzEnvironment. + + + + + + ------- Example 2: Discovering a new environment via Uri ------- + <# +Uri https://configuredmetadata.net returns an array of environment metadata. The following example contains a payload for the AzureCloud default environment. + +[ + { + "portal": "https://portal.azure.com", + "authentication": { + "loginEndpoint": "https://login.microsoftonline.com/", + "audiences": [ + "https://management.core.windows.net/" + ], + "tenant": "common", + "identityProvider": "AAD" + }, + "media": "https://rest.media.azure.net", + "graphAudience": "https://graph.windows.net/", + "graph": "https://graph.windows.net/", + "name": "AzureCloud", + "suffixes": { + "azureDataLakeStoreFileSystem": "azuredatalakestore.net", + "acrLoginServer": "azurecr.io", + "sqlServerHostname": ".database.windows.net", + "azureDataLakeAnalyticsCatalogAndJob": "azuredatalakeanalytics.net", + "keyVaultDns": "vault.azure.net", + "storage": "core.windows.net", + "azureFrontDoorEndpointSuffix": "azurefd.net" + }, + "batch": "https://batch.core.windows.net/", + "resourceManager": "https://management.azure.com/", + "vmImageAliasDoc": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/quickstart-templates/aliases.json", + "activeDirectoryDataLake": "https://datalake.azure.net/", + "sqlManagement": "https://management.core.windows.net:8443/", + "gallery": "https://gallery.azure.com/" + }, +…… +] +#> + +PS C:\> Add-AzEnvironment -AutoDiscover -Uri https://configuredmetadata.net + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + + In this example, we are discovering a new Azure environment from the `https://configuredmetadata.net` Uri. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/add-azenvironment + + + Get-AzEnvironment + + + + Remove-AzEnvironment + + + + Set-AzEnvironment + + + + + + + Clear-AzContext + Clear + AzContext + + Remove all Azure credentials, account, and subscription information. + + + + Remove all Azure Credentials, account, and subscription information. + + + + Clear-AzContext + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Delete all users and groups from the global scope without prompting + + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + Return a value indicating success or failure + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Clear the context only for the current PowerShell session, or for all sessions. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Delete all users and groups from the global scope without prompting + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + Return a value indicating success or failure + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Clear the context only for the current PowerShell session, or for all sessions. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Boolean + + + + + + + + + + + + + + --------------- Example 1: Clear global context --------------- + PS C:\> Clear-AzContext -Scope CurrentUser + + Remove all account, subscription, and credential information for any powershell session. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/clear-azcontext + + + + + + Clear-AzDefault + Clear + AzDefault + + Clears the defaults set by the user in the current context. + + + + The Clear-AzDefault cmdlet removes the defaults set by the user depending on the switch parameters specified by the user. + + + + Clear-AzDefault + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Remove all defaults if no default is specified + + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + {{Fill PassThru Description}} + + + System.Management.Automation.SwitchParameter + + + False + + + ResourceGroup + + Clear Default Resource Group + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Remove all defaults if no default is specified + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + {{Fill PassThru Description}} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + ResourceGroup + + Clear Default Resource Group + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.Management.Automation.SwitchParameter + + + + + + + + + + System.Boolean + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Clear-AzDefault + + This command removes all the defaults set by the user in the current context. + + + + + + -------------------------- Example 2 -------------------------- + PS C:\> Clear-AzDefault -ResourceGroup + + This command removes the default resource group set by the user in the current context. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/clear-azdefault + + + + + + Connect-AzAccount + Connect + AzAccount + + Connect to Azure with an authenticated account for use with cmdlets from the Az PowerShell modules. + + + + The `Connect-AzAccount` cmdlet connects to Azure with an authenticated account for use with cmdlets from the Az PowerShell modules. You can use this authenticated account only with Azure Resource Manager requests. To add an authenticated account for use with Service Management, use the `Add-AzureAccount` cmdlet from the Azure PowerShell module. If no context is found for the current user, the user's context list is populated with a context for each of their first 25 subscriptions. The list of contexts created for the user can be found by running `Get-AzContext -ListAvailable`. To skip this context population, specify the SkipContextPopulation switch parameter. After executing this cmdlet, you can disconnect from an Azure account using `Disconnect-AzAccount`. + + + + Connect-AzAccount + + AccessToken + + Specifies an access token. + > [!CAUTION] > Access tokens are a type of credential. You should take the appropriate security precautions to > keep them confidential. Access tokens also timeout and may prevent long running tasks from > completing. + + System.String + + System.String + + + None + + + AccountId + + Account ID for access token in AccessToken parameter set. Account ID for managed service in ManagedService parameter set. Can be a managed service resource ID, or the associated client ID. To use the system assigned identity, leave this field blank. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + GraphAccessToken + + AccessToken for Graph Service. + + System.String + + System.String + + + None + + + KeyVaultAccessToken + + AccessToken for KeyVault Service. + + System.String + + System.String + + + None + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + SkipValidation + + Skip validation for access token. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + AccountId + + Account ID for access token in AccessToken parameter set. Account ID for managed service in ManagedService parameter set. Can be a managed service resource ID, or the associated client ID. To use the system assigned identity, leave this field blank. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + Identity + + Login using a Managed Service Identity. + + + System.Management.Automation.SwitchParameter + + + False + + + ManagedServiceHostName + + Obsolete. To use customized MSI endpoint, please set environment variable MSI_ENDPOINT, e.g. "http://localhost:50342/oauth2/token". Host name for the managed service. + + System.String + + System.String + + + localhost + + + ManagedServicePort + + Obsolete. To use customized MSI endpoint, please set environment variable MSI_ENDPOINT, e.g. "http://localhost:50342/oauth2/token".Port number for the managed service. + + System.Int32 + + System.Int32 + + + 50342 + + + ManagedServiceSecret + + Obsolete. To use customized MSI secret, please set environment variable MSI_SECRET. Token for the managed service login. + + System.Security.SecureString + + System.Security.SecureString + + + None + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + ApplicationId + + Application ID of the service principal. + + System.String + + System.String + + + None + + + CertificateThumbprint + + Certificate Hash or Thumbprint. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + ServicePrincipal + + Indicates that this account authenticates by providing service principal credentials. + + + System.Management.Automation.SwitchParameter + + + False + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + Credential + + Specifies a PSCredential object. For more information about the PSCredential object, type `Get-Help Get-Credential`. The PSCredential object provides the user ID and password for organizational ID credentials, or the application ID and secret for service principal credentials. + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + ServicePrincipal + + Indicates that this account authenticates by providing service principal credentials. + + + System.Management.Automation.SwitchParameter + + + False + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + Credential + + Specifies a PSCredential object. For more information about the PSCredential object, type `Get-Help Get-Credential`. The PSCredential object provides the user ID and password for organizational ID credentials, or the application ID and secret for service principal credentials. + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + UseDeviceAuthentication + + Use device code authentication instead of a browser control. + + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + AccessToken + + Specifies an access token. + > [!CAUTION] > Access tokens are a type of credential. You should take the appropriate security precautions to > keep them confidential. Access tokens also timeout and may prevent long running tasks from > completing. + + System.String + + System.String + + + None + + + AccountId + + Account ID for access token in AccessToken parameter set. Account ID for managed service in ManagedService parameter set. Can be a managed service resource ID, or the associated client ID. To use the system assigned identity, leave this field blank. + + System.String + + System.String + + + None + + + ApplicationId + + Application ID of the service principal. + + System.String + + System.String + + + None + + + CertificateThumbprint + + Certificate Hash or Thumbprint. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + Credential + + Specifies a PSCredential object. For more information about the PSCredential object, type `Get-Help Get-Credential`. The PSCredential object provides the user ID and password for organizational ID credentials, or the application ID and secret for service principal credentials. + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + GraphAccessToken + + AccessToken for Graph Service. + + System.String + + System.String + + + None + + + Identity + + Login using a Managed Service Identity. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + KeyVaultAccessToken + + AccessToken for KeyVault Service. + + System.String + + System.String + + + None + + + ManagedServiceHostName + + Obsolete. To use customized MSI endpoint, please set environment variable MSI_ENDPOINT, e.g. "http://localhost:50342/oauth2/token". Host name for the managed service. + + System.String + + System.String + + + localhost + + + ManagedServicePort + + Obsolete. To use customized MSI endpoint, please set environment variable MSI_ENDPOINT, e.g. "http://localhost:50342/oauth2/token".Port number for the managed service. + + System.Int32 + + System.Int32 + + + 50342 + + + ManagedServiceSecret + + Obsolete. To use customized MSI secret, please set environment variable MSI_SECRET. Token for the managed service login. + + System.Security.SecureString + + System.Security.SecureString + + + None + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + ServicePrincipal + + Indicates that this account authenticates by providing service principal credentials. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + SkipContextPopulation + + Skips context population if no contexts are found. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + SkipValidation + + Skip validation for access token. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + UseDeviceAuthentication + + Use device code authentication instead of a browser control. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + + + + + + + + + + + + ------------ Example 1: Connect to an Azure account ------------ + Connect-AzAccount + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + Example 2: (Windows PowerShell 5.1 only) Connect to Azure using organizational ID credentials + $Credential = Get-Credential +Connect-AzAccount -Credential $Credential + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + Example 3: Connect to Azure using a service principal account + $Credential = Get-Credential +Connect-AzAccount -Credential $Credential -Tenant 'xxxx-xxxx-xxxx-xxxx' -ServicePrincipal + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +xxxx-xxxx-xxxx-xxxx Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + Example 4: Use an interactive login to connect to a specific tenant and subscription + Connect-AzAccount -Tenant 'xxxx-xxxx-xxxx-xxxx' -SubscriptionId 'yyyy-yyyy-yyyy-yyyy' + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + ----- Example 5: Connect using a Managed Service Identity ----- + Connect-AzAccount -Identity + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +MSI@50342 Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + Example 6: Connect using Managed Service Identity login and ClientId + $identity = Get-AzUserAssignedIdentity -ResourceGroupName 'myResourceGroup' -Name 'myUserAssignedIdentity' +Get-AzVM -ResourceGroupName contoso -Name testvm | Update-AzVM -IdentityType UserAssigned -IdentityId $identity.Id +Connect-AzAccount -Identity -AccountId $identity.ClientId # Run on the virtual machine + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +yyyy-yyyy-yyyy-yyyy Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + ------------ Example 7: Connect using certificates ------------ + $Thumbprint = '0SZTNJ34TCCMUJ5MJZGR8XQD3S0RVHJBA33Z8ZXV' +$TenantId = '4cd76576-b611-43d0-8f2b-adcb139531bf' +$ApplicationId = '3794a65a-e4e4-493d-ac1d-f04308d712dd' +Connect-AzAccount -CertificateThumbprint $Thumbprint -ApplicationId $ApplicationId -Tenant $TenantId -ServicePrincipal + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +xxxx-xxxx-xxxx-xxxx Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + +Account : 3794a65a-e4e4-493d-ac1d-f04308d712dd +SubscriptionName : MyTestSubscription +SubscriptionId : 85f0f653-1f86-4d2c-a9f1-042efc00085c +TenantId : 4cd76576-b611-43d0-8f2b-adcb139531bf +Environment : AzureCloud + + + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/connect-azaccount + + + + + + Disable-AzContextAutosave + Disable + AzContextAutosave + + Turn off autosaving Azure credentials. Your login information will be forgotten the next time you open a PowerShell window + + + + Turn off autosaving Azure credentials. Your login information will be forgotten the next time you open a PowerShell window + + + + Disable-AzContextAutosave + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.ContextAutosaveSettings + + + + + + + + + + + + + + ---------- Example 1: Disable autosaving the context ---------- + PS C:\> Disable-AzContextAutosave + + Disable autosave for the current user. + + + + + + -------------------------- Example 2 -------------------------- + <!-- Aladdin Generated Example --> +Disable-AzContextAutosave -Scope Process + + + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/disable-azcontextautosave + + + + + + Disable-AzDataCollection + Disable + AzDataCollection + + Opts out of collecting data to improve the Azure PowerShell cmdlets. Data is collected by default unless you explicitly opt out. + + + + The `Disable-AzDataCollection` cmdlet is used to opt out of data collection. Azure PowerShell automatically collects telemetry data by default. To disable data collection, you must explicitly opt-out. Microsoft aggregates collected data to identify patterns of usage, to identify common issues, and to improve the experience of Azure PowerShell. Microsoft Azure PowerShell doesn't collect any private or personal data. If you've previously opted out, run the `Enable-AzDataCollection` cmdlet to re-enable data collection for the current user on the current machine. + + + + Disable-AzDataCollection + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Void + + + + + + + + + + + + + + -- Example 1: Disabling data collection for the current user -- + Disable-AzDataCollection + + + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/disable-azdatacollection + + + Enable-AzDataCollection + + + + + + + Disable-AzureRmAlias + Disable + AzureRmAlias + + Disables AzureRm prefix aliases for Az modules. + + + + Disables AzureRm prefix aliases for Az modules. If -Module is specified, only modules listed will have aliases disabled. Otherwise all AzureRm aliases are disabled. + + + + Disable-AzureRmAlias + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Module + + Indicates which modules to disable aliases for. If none are specified, default is all enabled modules. + + System.String[] + + System.String[] + + + None + + + PassThru + + If specified, cmdlet will return all disabled aliases + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Indicates what scope aliases should be disabled for. Default is 'Process' + + + Process + CurrentUser + LocalMachine + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Module + + Indicates which modules to disable aliases for. If none are specified, default is all enabled modules. + + System.String[] + + System.String[] + + + None + + + PassThru + + If specified, cmdlet will return all disabled aliases + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Indicates what scope aliases should be disabled for. Default is 'Process' + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.String + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Disable-AzureRmAlias + + Disables all AzureRm prefixes for the current PowerShell session. + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Disable-AzureRmAlias -Module Az.Accounts -Scope CurrentUser + + Disables AzureRm aliases for the Az.Accounts module for both the current process and for the current user. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/disable-azurermalias + + + + + + Disconnect-AzAccount + Disconnect + AzAccount + + Disconnects a connected Azure account and removes all credentials and contexts associated with that account. + + + + The Disconnect-AzAccount cmdlet disconnects a connected Azure account and removes all credentials and contexts (subscription and tenant information) associated with that account. After executing this cmdlet, you will need to login again using Connect-AzAccount. + + + + Disconnect-AzAccount + + ApplicationId + + ServicePrincipal id (globally unique id) + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + TenantId + + Tenant id (globally unique id) + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + + System.Management.Automation.SwitchParameter + + + False + + + + Disconnect-AzAccount + + AzureContext + + Context + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + + System.Management.Automation.SwitchParameter + + + False + + + + Disconnect-AzAccount + + ContextName + + Name of the context to log out of + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + + System.Management.Automation.SwitchParameter + + + False + + + + Disconnect-AzAccount + + InputObject + + The account object to remove + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + + System.Management.Automation.SwitchParameter + + + False + + + + Disconnect-AzAccount + + Username + + User name of the form 'user@contoso.org' + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + ApplicationId + + ServicePrincipal id (globally unique id) + + System.String + + System.String + + + None + + + AzureContext + + Context + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + ContextName + + Name of the context to log out of + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + InputObject + + The account object to remove + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + TenantId + + Tenant id (globally unique id) + + System.String + + System.String + + + None + + + Username + + User name of the form 'user@contoso.org' + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + + + + + + + + + + + + + ----------- Example 1: Logout of the current account ----------- + PS C:\> Disconnect-AzAccount + + Logs out of the Azure account associated with the current context. + + + + + + Example 2: Logout of the account associated with a particular context + PS C:\> Get-AzContext "Work" | Disconnect-AzAccount -Scope CurrentUser + + Logs out the account associated with the given context (named 'Work'). Because this uses the 'CurrentUser' scope, all credentials and contexts will be permanently deleted. + + + + + + ------------- Example 3: Log out a particular user ------------- + PS C:\> Disconnect-AzAccount -Username 'user1@contoso.org' + + Logs out the 'user1@contoso.org' user - all credentials and all contexts associated with this user will be removed. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/disconnect-azaccount + + + + + + Enable-AzContextAutosave + Enable + AzContextAutosave + + Azure contexts are PowerShell objects representing your active subscription to run commands against, and the authentication information needed to connect to an Azure cloud. With Azure contexts, Azure PowerShell doesn't need to reauthenticate your account each time you switch subscriptions. For more information, see Azure PowerShell context objects (https://docs.microsoft.com/powershell/azure/context-persistence). + This cmdlet allows the Azure context information to be saved and automatically loaded when you start a PowerShell process. For example, when opening a new window. + + + + Allows the Azure context information to be saved and automatically loaded when a PowerShell process starts. The context is saved at the end of the execution of any cmdlet that affects the context. For example, any profile cmdlet. If you're using user authentication, then tokens can be updated during the course of running any cmdlet. + + + + Enable-AzContextAutosave + + DefaultProfile + + The credentials, tenant, and subscription used for communication with Azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes. For example, whether changes apply only to the current process, or to all sessions started by this user. Changes made with the scope `CurrentUser` will affect all PowerShell sessions started by the user. If a particular session needs to have different settings, use the scope `Process`. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + CurrentUser + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet isn't run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with Azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes. For example, whether changes apply only to the current process, or to all sessions started by this user. Changes made with the scope `CurrentUser` will affect all PowerShell sessions started by the user. If a particular session needs to have different settings, use the scope `Process`. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + CurrentUser + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet isn't run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Common Parameters + + This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216). + + + + + + + None + + + + + + None + + + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.ContextAutosaveSettings + + + + + + + + + + + + + + Example 1: Enable autosaving credentials for the current user + Enable-AzContextAutosave + + + + + + + + -------------------------- Example 2 -------------------------- + <!-- Aladdin Generated Example --> +Enable-AzContextAutosave -Scope Process + + + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/enable-azcontextautosave + + + + + + Enable-AzDataCollection + Enable + AzDataCollection + + Enables Azure PowerShell to collect data to improve the user experience with the Azure PowerShell cmdlets. Executing this cmdlet opts in to data collection for the current user on the current machine. Data is collected by default unless you explicitly opt out. + + + + The `Enable-AzDataCollection` cmdlet is used to opt in to data collection. Azure PowerShell automatically collects telemetry data by default. Microsoft aggregates collected data to identify patterns of usage, to identify common issues, and to improve the experience of Azure PowerShell. Microsoft Azure PowerShell doesn't collect any private or personal data. To disable data collection, you must explicitly opt out by executing `Disable-AzDataCollection`. + + + + Enable-AzDataCollection + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Void + + + + + + + + + + + + + + --- Example 1: Enabling data collection for the current user --- + Enable-AzDataCollection + + + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/enable-azdatacollection + + + Disable-AzDataCollection + + + + + + + Enable-AzureRmAlias + Enable + AzureRmAlias + + Enables AzureRm prefix aliases for Az modules. + + + + Enables AzureRm prefix aliases for Az modules. If -Module is specified, only modules listed will have aliases enabled. Otherwise all AzureRm aliases are enabled. + + + + Enable-AzureRmAlias + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Module + + Indicates which modules to enable aliases for. If none are specified, default is all modules. + + System.String[] + + System.String[] + + + None + + + PassThru + + If specified, cmdlet will return all aliases enabled + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Indicates what scope aliases should be enabled for. Default is 'Local' + + + Local + Process + CurrentUser + LocalMachine + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Module + + Indicates which modules to enable aliases for. If none are specified, default is all modules. + + System.String[] + + System.String[] + + + None + + + PassThru + + If specified, cmdlet will return all aliases enabled + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Indicates what scope aliases should be enabled for. Default is 'Local' + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.String + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Enable-AzureRmAlias + + Enables all AzureRm prefixes for the current PowerShell session. + + + + + + -------------------------- Example 2 -------------------------- + PS C:\> Enable-AzureRmAlias -Module Az.Accounts -Scope CurrentUser + + Enables AzureRm aliases for the Az.Accounts module for both the current process and for the current user. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/enable-azurermalias + + + + + + Get-AzAccessToken + Get + AzAccessToken + + Get raw access token. When using -ResourceUrl, please make sure the value does match current Azure environment. You may refer to the value of `(Get-AzContext).Environment`. + + + + Get access token + + + + Get-AzAccessToken + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ResourceTypeName + + Optional resouce type name, supported values: AadGraph, AnalysisServices, Arm, Attestation, Batch, DataLake, KeyVault, OperationalInsights, ResourceManager, Synapse. Default value is Arm if not specified. + + System.String + + System.String + + + None + + + TenantId + + Optional Tenant Id. Use tenant id of default context if not specified. + + System.String + + System.String + + + None + + + + Get-AzAccessToken + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ResourceUrl + + Resource url for that you're requesting token, e.g. 'http://graph.windows.net/'. + + System.String + + System.String + + + None + + + TenantId + + Optional Tenant Id. Use tenant id of default context if not specified. + + System.String + + System.String + + + None + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ResourceTypeName + + Optional resouce type name, supported values: AadGraph, AnalysisServices, Arm, Attestation, Batch, DataLake, KeyVault, OperationalInsights, ResourceManager, Synapse. Default value is Arm if not specified. + + System.String + + System.String + + + None + + + ResourceUrl + + Resource url for that you're requesting token, e.g. 'http://graph.windows.net/'. + + System.String + + System.String + + + None + + + TenantId + + Optional Tenant Id. Use tenant id of default context if not specified. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + System.String + + + + + + + + + + + + + + ------- Example 1 Get raw access token for ARM endpoint ------- + PS C:\> Get-AzAccessToken + + Get access token of ResourceManager endpoint for current account + + + + + + ---- Example 2 Get raw access token for AAD graph endpoint ---- + PS C:\> Get-AzAccessToken -ResourceTypeName AadGraph + + Get access token of AAD graph endpoint for current account + + + + + + ---- Example 3 Get raw access token for AAD graph endpoint ---- + PS C:\> Get-AzAccessToken -Resource "https://graph.windows.net/" + + Get access token of AAD graph endpoint for current account + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/get-azaccesstoken + + + + + + Get-AzContext + Get + AzContext + + Gets the metadata used to authenticate Azure Resource Manager requests. + + + + The Get-AzContext cmdlet gets the current metadata used to authenticate Azure Resource Manager requests. This cmdlet gets the Active Directory account, Active Directory tenant, Azure subscription, and the targeted Azure environment. Azure Resource Manager cmdlets use these settings by default when making Azure Resource Manager requests. + + + + Get-AzContext + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ListAvailable + + List all available contexts in the current session. + + + System.Management.Automation.SwitchParameter + + + False + + + + Get-AzContext + + Name + + The name of the context + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ListAvailable + + List all available contexts in the current session. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Name + + The name of the context + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + + + + + ------------ Example 1: Getting the current context ------------ + PS C:\> Connect-AzAccount +PS C:\> Get-AzContext + +Name Account SubscriptionName Environment TenantId +---- ------- ---------------- ----------- -------- +Subscription1 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... + + In this example we are logging into our account with an Azure subscription using Connect-AzAccount, and then we are getting the context of the current session by calling Get-AzContext. + + + + + + ---------- Example 2: Listing all available contexts ---------- + PS C:\> Get-AzContext -ListAvailable + +Name Account SubscriptionName Environment TenantId +---- ------- ---------------- ----------- -------- +Subscription1 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... +Subscription2 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription2 AzureCloud xxxxxxxx-x... +Subscription3 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription3 AzureCloud xxxxxxxx-x... + + In this example, all currently available contexts are displayed. The user may select one of these contexts using Select-AzContext. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/get-azcontext + + + Set-AzContext + + + + + + + Get-AzContextAutosaveSetting + Get + AzContextAutosaveSetting + + Display metadata about the context autosave feature, including whether the context is automatically saved, and where saved context and credential information can be found. + + + + Display metadata about the context autosave feature, including whether the context is automatically saved, and where saved context and credential information can be found. + + + + Get-AzContextAutosaveSetting + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + + + + None + + + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.ContextAutosaveSettings + + + + + + + + + + + + + + ------ Get context save metadata for the current session ------ + PS C:\> Get-AzContextAutosaveSetting + +Mode : Process +ContextDirectory : None +ContextFile : None +CacheDirectory : None +CacheFile : None +Settings : {} + + Get details about whether and where the context is saved. In the above example, the autosave feature has been disabled. + + + + + + -------- Get context save metadata for the current user -------- + PS C:\> Get-AzContextAutosaveSetting -Scope CurrentUser + +Mode : CurrentUser +ContextDirectory : C:\Users\contoso\AppData\Roaming\Windows Azure Powershell +ContextFile : AzureRmContext.json +CacheDirectory : C:\Users\contoso\AppData\Roaming\Windows Azure Powershell +CacheFile : TokenCache.dat +Settings : {} + + Get details about whether and where the context is saved by default for the current user. Note that this may be different than the settings that are active in the current session. In the above example, the autosave feature has been enabled, and data is saved to the default location. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/get-azcontextautosavesetting + + + + + + Get-AzDefault + Get + AzDefault + + Get the defaults set by the user in the current context. + + + + The Get-AzDefault cmdlet gets the Resource Group that the user has set as default in the current context. + + + + Get-AzDefault + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ResourceGroup + + Display Default Resource Group + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ResourceGroup + + Display Default Resource Group + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.Management.Automation.SwitchParameter + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSResourceGroup + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-AzDefault + +Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup +Name : myResourceGroup +Properties : Microsoft.Azure.Management.Internal.Resources.Models.ResourceGroupProperties +Location : eastus +ManagedBy : +Tags : + + This command returns the current defaults if there are defaults set, or returns nothing if no default is set. + + + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-AzDefault -ResourceGroup + +Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup +Name : myResourceGroup +Properties : Microsoft.Azure.Management.Internal.Resources.Models.ResourceGroupProperties +Location : eastus +ManagedBy : +Tags : + + This command returns the current default Resource Group if there is a default set, or returns nothing if no default is set. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/get-azdefault + + + + + + Get-AzEnvironment + Get + AzEnvironment + + Get endpoints and metadata for an instance of Azure services. + + + + The Get-AzEnvironment cmdlet gets endpoints and metadata for an instance of Azure services. + + + + Get-AzEnvironment + + Name + + Specifies the name of the Azure instance to get. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Name + + Specifies the name of the Azure instance to get. + + System.String + + System.String + + + None + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + + + + + + + + + + + + + -------- Example 1: Getting the AzureCloud environment -------- + PS C:\> Get-AzEnvironment AzureCloud + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +AzureCloud https://management.azure.com/ https://login.microsoftonline.com/ + + This example shows how to get the endpoints and metadata for the AzureCloud (default) environment. + + + + + + ------ Example 2: Getting the AzureChinaCloud environment ------ + PS C:\> Get-AzEnvironment AzureChinaCloud | Format-List + +Name : AzureChinaCloud +EnableAdfsAuthentication : False +ActiveDirectoryServiceEndpointResourceId : https://management.core.chinacloudapi.cn/ +AdTenant : +GalleryUrl : https://gallery.chinacloudapi.cn/ +ManagementPortalUrl : http://go.microsoft.com/fwlink/?LinkId=301902 +ServiceManagementUrl : https://management.core.chinacloudapi.cn/ +PublishSettingsFileUrl : http://go.microsoft.com/fwlink/?LinkID=301776 +ResourceManagerUrl : https://management.chinacloudapi.cn/ +SqlDatabaseDnsSuffix : .database.chinacloudapi.cn +StorageEndpointSuffix : core.chinacloudapi.cn +ActiveDirectoryAuthority : https://login.chinacloudapi.cn/ +GraphUrl : https://graph.chinacloudapi.cn/ +GraphEndpointResourceId : https://graph.chinacloudapi.cn/ +TrafficManagerDnsSuffix : trafficmanager.cn +AzureKeyVaultDnsSuffix : vault.azure.cn +AzureDataLakeStoreFileSystemEndpointSuffix : +AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix : +AzureKeyVaultServiceEndpointResourceId : https://vault.azure.cn + + This example shows how to get the endpoints and metadata for the AzureChinaCloud environment. + + + + + + ----- Example 3: Getting the AzureUSGovernment environment ----- + PS C:\> Get-AzEnvironment AzureUSGovernment + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +AzureUSGovernment https://management.usgovcloudapi.net/ https://login.microsoftonline.us/ + + This example shows how to get the endpoints and metadata for the AzureUSGovernment environment. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/get-azenvironment + + + Add-AzEnvironment + + + + Remove-AzEnvironment + + + + Set-AzEnvironment + + + + + + + Get-AzSubscription + Get + AzSubscription + + Get subscriptions that the current account can access. + + + + The Get-AzSubscription cmdlet gets the subscription ID, subscription name, and home tenant for subscriptions that the current account can access. + + + + Get-AzSubscription + + AsJob + + Run cmdlet in the background and return a Job to track progress. + + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + SubscriptionId + + Specifies the ID of the subscription to get. + + System.String + + System.String + + + None + + + TenantId + + Specifies the ID of the tenant that contains subscriptions to get. + + System.String + + System.String + + + None + + + + Get-AzSubscription + + AsJob + + Run cmdlet in the background and return a Job to track progress. + + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + SubscriptionName + + Specifies the name of the subscription to get. + + System.String + + System.String + + + None + + + TenantId + + Specifies the ID of the tenant that contains subscriptions to get. + + System.String + + System.String + + + None + + + + + + AsJob + + Run cmdlet in the background and return a Job to track progress. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + SubscriptionId + + Specifies the ID of the subscription to get. + + System.String + + System.String + + + None + + + SubscriptionName + + Specifies the name of the subscription to get. + + System.String + + System.String + + + None + + + TenantId + + Specifies the ID of the tenant that contains subscriptions to get. + + System.String + + System.String + + + None + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + + + + + + + + + + + + + ------- Example 1: Get all subscriptions in all tenants ------- + PS C:\>Get-AzSubscription + +Name Id TenantId State +---- -- -------- ----- +Subscription1 yyyy-yyyy-yyyy-yyyy aaaa-aaaa-aaaa-aaaa Enabled +Subscription2 xxxx-xxxx-xxxx-xxxx aaaa-aaaa-aaaa-aaaa Enabled +Subscription3 zzzz-zzzz-zzzz-zzzz bbbb-bbbb-bbbb-bbbb Enabled + + This command gets all subscriptions in all tenants that are authorized for the current account. + + + + + + ---- Example 2: Get all subscriptions for a specific tenant ---- + PS C:\>Get-AzSubscription -TenantId "aaaa-aaaa-aaaa-aaaa" + +Name Id TenantId State +---- -- -------- ----- +Subscription1 yyyy-yyyy-yyyy-yyyy aaaa-aaaa-aaaa-aaaa Enabled +Subscription2 xxxx-xxxx-xxxx-xxxx aaaa-aaaa-aaaa-aaaa Enabled + + List all subscriptions in the given tenant that are authorized for the current account. + + + + + + ---- Example 3: Get all subscriptions in the current tenant ---- + PS C:\>Get-AzSubscription + +Name Id TenantId State +---- -- -------- ----- +Subscription1 yyyy-yyyy-yyyy-yyyy aaaa-aaaa-aaaa-aaaa Enabled +Subscription2 xxxx-xxxx-xxxx-xxxx aaaa-aaaa-aaaa-aaaa Enabled + + This command gets all subscriptions in the current tenant that are authorized for the current user. + + + + + + Example 4: Change the current context to use a specific subscription + PS C:\>Get-AzSubscription -SubscriptionId "xxxx-xxxx-xxxx-xxxx" -TenantId "yyyy-yyyy-yyyy-yyyy" | Set-AzContext + +Name Account SubscriptionName Environment TenantId +---- ------- ---------------- ----------- -------- +Subscription1 (xxxx-xxxx-xxxx-xxxx) azureuser@micros... Subscription1 AzureCloud yyyy-yyyy-yyyy-yyyy + + This command gets the specified subscription, and then sets the current context to use it. All subsequent cmdlets in this session use the new subscription (Contoso Subscription 1) by default. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/get-azsubscription + + + + + + Get-AzTenant + Get + AzTenant + + Gets tenants that are authorized for the current user. + + + + The Get-AzTenant cmdlet gets tenants authorized for the current user. + + + + Get-AzTenant + + TenantId + + Specifies the ID of the tenant that this cmdlet gets. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + TenantId + + Specifies the ID of the tenant that this cmdlet gets. + + System.String + + System.String + + + None + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + + + + + + + + + + + + + ---------------- Example 1: Getting all tenants ---------------- + PS C:\> Connect-AzAccount +PS C:\> Get-AzTenant + +Id Name Category Domains +-- ----------- -------- ------- +xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Microsoft Home {test0.com, test1.com, test2.microsoft.com, test3.microsoft.com...} +yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy Testhost Home testhost.onmicrosoft.com + + This example shows how to get all of the authorized tenants of an Azure account. + + + + + + ------------- Example 2: Getting a specific tenant ------------- + PS C:\> Connect-AzAccount +PS C:\> Get-AzTenant -TenantId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + +Id Name Category Domains +-- ----------- -------- ------- +xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Microsoft Home {test0.com, test1.com, test2.microsoft.com, test3.microsoft.com...} + + This example shows how to get a specific authorized tenant of an Azure account. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/get-aztenant + + + + + + Import-AzContext + Import + AzContext + + Loads Azure authentication information from a file. + + + + The Import-AzContext cmdlet loads authentication information from a file to set the Azure environment and context. Cmdlets that you run in the current session use this information to authenticate requests to Azure Resource Manager. + + + + Import-AzContext + + AzureContext + + {{Fill AzureContext Description}} + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Import-AzContext + + Path + + Specifies the path to context information saved by using Save-AzContext. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + AzureContext + + {{Fill AzureContext Description}} + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Path + + Specifies the path to context information saved by using Save-AzContext. + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + + + + + + + + + + + + ----- Example 1: Importing a context from a AzureRmProfile ----- + PS C:\> Import-AzContext -AzContext (Connect-AzAccount) + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + This example imports a context from a PSAzureProfile that is passed through to the cmdlet. + + + + + + ------- Example 2: Importing a context from a JSON file ------- + PS C:\> Import-AzContext -Path C:\test.json + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + This example selects a context from a JSON file that is passed through to the cmdlet. This JSON file can be created from Save-AzContext. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/import-azcontext + + + + + + Invoke-AzRestMethod + Invoke + AzRestMethod + + Construct and perform HTTP request to Azure resource management endpoint only + + + + Construct and perform HTTP request to Azure resource management endpoint only + + + + Invoke-AzRestMethod + + ApiVersion + + Api Version + + String + + String + + + None + + + AsJob + + Run cmdlet in the background + + + SwitchParameter + + + False + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + IAzureContextContainer + + IAzureContextContainer + + + None + + + Method + + Http Method + + + GET + POST + PUT + PATCH + DELETE + + String + + String + + + None + + + Name + + list of Target Resource Name + + String[] + + String[] + + + None + + + Payload + + JSON format payload + + String + + String + + + None + + + ResourceGroupName + + Target Resource Group Name + + String + + String + + + None + + + ResourceProviderName + + Target Resource Provider Name + + String + + String + + + None + + + ResourceType + + List of Target Resource Type + + String[] + + String[] + + + None + + + SubscriptionId + + Target Subscription Id + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Invoke-AzRestMethod + + AsJob + + Run cmdlet in the background + + + SwitchParameter + + + False + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + IAzureContextContainer + + IAzureContextContainer + + + None + + + Method + + Http Method + + + GET + POST + PUT + PATCH + DELETE + + String + + String + + + None + + + Path + + Target Path + + String + + String + + + None + + + Payload + + JSON format payload + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + ApiVersion + + Api Version + + String + + String + + + None + + + AsJob + + Run cmdlet in the background + + SwitchParameter + + SwitchParameter + + + False + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + IAzureContextContainer + + IAzureContextContainer + + + None + + + Method + + Http Method + + String + + String + + + None + + + Name + + list of Target Resource Name + + String[] + + String[] + + + None + + + Path + + Target Path + + String + + String + + + None + + + Payload + + JSON format payload + + String + + String + + + None + + + ResourceGroupName + + Target Resource Group Name + + String + + String + + + None + + + ResourceProviderName + + Target Resource Provider Name + + String + + String + + + None + + + ResourceType + + List of Target Resource Type + + String[] + + String[] + + + None + + + SubscriptionId + + Target Subscription Id + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.string + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSHttpResponse + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}?api-version={API}" -Method GET + +Headers : {[Cache-Control, System.String[]], [Pragma, System.String[]], [x-ms-request-id, System.String[]], [Strict-Transport-Security, System.String[]]…} +Version : 1.1 +StatusCode : 200 +Method : GET +Content : { + "properties": { + "source": "Azure", + "customerId": "{customerId}", + "provisioningState": "Succeeded", + "sku": { + "name": "pergb2018", + "maxCapacityReservationLevel": 3000, + "lastSkuUpdate": "Mon, 25 May 2020 11:10:01 GMT" + }, + "retentionInDays": 30, + "features": { + "legacy": 0, + "searchVersion": 1, + "enableLogAccessUsingOnlyResourcePermissions": true + }, + "workspaceCapping": { + "dailyQuotaGb": -1.0, + "quotaNextResetTime": "Thu, 18 Jun 2020 05:00:00 GMT", + "dataIngestionStatus": "RespectQuota" + }, + "enableFailover": false, + "publicNetworkAccessForIngestion": "Enabled", + "publicNetworkAccessForQuery": "Enabled", + "createdDate": "Mon, 25 May 2020 11:10:01 GMT", + "modifiedDate": "Mon, 25 May 2020 11:10:02 GMT" + }, + "id": "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}", + "name": "{workspace}", + "type": "Microsoft.OperationalInsights/workspaces", + "location": "eastasia", + "tags": {} + } + + Get log analytics workspace by path + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/invoke-azrestmethod + + + + + + Register-AzModule + Register + AzModule + + FOR INTERNAL USE ONLY - Provide Runtime Support for AutoRest Generated cmdlets + + + + FOR INTERNAL USE ONLY - Provide Runtime Support for AutoRest Generated cmdlets + + + + Register-AzModule + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Register-AzModule + + Used Internally by AutoRest-generated cmdlets + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/register-azmodule + + + + + + Remove-AzContext + Remove + AzContext + + Remove a context from the set of available contexts + + + + Remove an azure context from the set of contexts + + + + Remove-AzContext + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Remove context even if it is the default + + + System.Management.Automation.SwitchParameter + + + False + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + PassThru + + Return the removed context + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Remove-AzContext + + Name + + The name of the context + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Remove context even if it is the default + + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + Return the removed context + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Remove context even if it is the default + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + Name + + The name of the context + + System.String + + System.String + + + None + + + PassThru + + Return the removed context + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-AzContext -Name Default + + Remove the context named default + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/remove-azcontext + + + + + + Remove-AzEnvironment + Remove + AzEnvironment + + Removes endpoints and metadata for connecting to a given Azure instance. + + + + The Remove-AzEnvironment cmdlet removes endpoints and metadata information for connecting to a given Azure instance. + + + + Remove-AzEnvironment + + Name + + Specifies the name of the environment to remove. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Name + + Specifies the name of the environment to remove. + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + + + + + + + + + + + + + ----- Example 1: Creating and removing a test environment ----- + PS C:\> Add-AzEnvironment -Name TestEnvironment ` + -ActiveDirectoryEndpoint TestADEndpoint ` + -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` + -ResourceManagerEndpoint TestRMEndpoint ` + -GalleryEndpoint TestGalleryEndpoint ` + -GraphEndpoint TestGraphEndpoint + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + +PS C:\> Remove-AzEnvironment -Name TestEnvironment + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + + This example shows how to create an environment using Add-AzEnvironment, and then how to delete the environment using Remove-AzEnvironment. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/remove-azenvironment + + + Add-AzEnvironment + + + + Get-AzEnvironment + + + + Set-AzEnvironment + + + + + + + Rename-AzContext + Rename + AzContext + + Rename an Azure context. By default contexts are named by user account and subscription. + + + + Rename an Azure context. By default contexts are named by user account and subscription. + + + + Rename-AzContext + + TargetName + + The new name of the context + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Rename the context even if the target context already exists + + + System.Management.Automation.SwitchParameter + + + False + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + PassThru + + Return the renamed context. + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Rename-AzContext + + SourceName + + The name of the context + + System.String + + System.String + + + None + + + TargetName + + The new name of the context + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Rename the context even if the target context already exists + + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + Return the renamed context. + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Rename the context even if the target context already exists + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + PassThru + + Return the renamed context. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SourceName + + The name of the context + + System.String + + System.String + + + None + + + TargetName + + The new name of the context + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + + + + + ------ Example 1: Rename a context using named parameters ------ + PS C:\> Rename-AzContext -SourceName "[user1@contoso.org; 12345-6789-2345-3567890]" -TargetName "Work" + + Rename the context for 'user1@contoso.org' with subscription '12345-6789-2345-3567890' to 'Work'. After this command, you will be able to target the context using 'Select-AzContext Work'. Note that you can tab through the values for 'SourceName' using tab completion. + + + + + + --- Example 2: Rename a context using positional parameters --- + PS C:\> Rename-AzContext "My context" "Work" + + Rename the context named "My context" to "Work". After this command, you will be able to target the context using Select-AzContext Work + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/rename-azcontext + + + + + + Resolve-AzError + Resolve + AzError + + Display detailed information about PowerShell errors, with extended details for Azure PowerShell errors. + + + + Resolves and displays detailed information about errors in the current PowerShell session, including where the error occurred in script, stack trace, and all inner and aggregate exceptions. For Azure PowerShell errors provides additional detail in debugging service issues, including complete detail about the request and server response that caused the error. + + + + Resolve-AzError + + Error + + One or more error records to resolve. If no parameters are specified, all errors in the session are resolved. + + System.Management.Automation.ErrorRecord[] + + System.Management.Automation.ErrorRecord[] + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + Resolve-AzError + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Last + + Resolve only the last error that occurred in the session. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Error + + One or more error records to resolve. If no parameters are specified, all errors in the session are resolved. + + System.Management.Automation.ErrorRecord[] + + System.Management.Automation.ErrorRecord[] + + + None + + + Last + + Resolve only the last error that occurred in the session. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.Management.Automation.ErrorRecord[] + + + + + + + + + + Microsoft.Azure.Commands.Profile.Errors.AzureErrorRecord + + + + + + + + Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord + + + + + + + + Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord + + + + + + + + + + + + + + -------------- Example 1: Resolve the Last Error -------------- + PS C:\> Resolve-AzError -Last + + HistoryId: 3 + + +Message : Run Connect-AzAccount to login. +StackTrace : at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.get_DefaultContext() in AzureRmCmdlet.cs:line 85 + at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.LogCmdletStartInvocationInfo() in AzureRmCmdlet.cs:line 269 + at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.BeginProcessing() inAzurePSCmdlet.cs:line 299 + at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.BeginProcessing() in AzureRmCmdlet.cs:line 320 + at Microsoft.Azure.Commands.Profile.GetAzureRMSubscriptionCommand.BeginProcessing() in GetAzureRMSubscription.cs:line 49 + at System.Management.Automation.Cmdlet.DoBeginProcessing() + at System.Management.Automation.CommandProcessorBase.DoBegin() +Exception : System.Management.Automation.PSInvalidOperationException +InvocationInfo : {Get-AzSubscription} +Line : Get-AzSubscription +Position : At line:1 char:1 + + Get-AzSubscription + + ~~~~~~~~~~~~~~~~~~~~~~~ +HistoryId : 3 + + Get details of the last error. + + + + + + --------- Example 2: Resolve all Errors in the Session --------- + PS C:\> Resolve-AzError + + + HistoryId: 8 + + +RequestId : b61309e8-09c9-4f0d-ba56-08a6b28c731d +Message : Resource group 'contoso' could not be found. +ServerMessage : ResourceGroupNotFound: Resource group 'contoso' could not be found. + (System.Collections.Generic.List`1[Microsoft.Rest.Azure.CloudError]) +ServerResponse : {NotFound} +RequestMessage : {GET https://management.azure.com/subscriptions/00977cdb-163f-435f-9c32-39ec8ae61f4d/resourceGroups/co + ntoso/providers/Microsoft.Storage/storageAccounts/contoso?api-version=2016-12-01} +InvocationInfo : {Get-AzStorageAccount} +Line : Get-AzStorageAccount -ResourceGroupName contoso -Name contoso +Position : At line:1 char:1 + + Get-AzStorageAccount -ResourceGroupName contoso -Name contoso + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +StackTrace : at Microsoft.Azure.Management.Storage.StorageAccountsOperations.<GetPropertiesWithHttpMessagesAsync + >d__8.MoveNext() + --- End of stack trace from previous location where exception was thrown --- + at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) + at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.<GetPropertiesAsync>d__7. + MoveNext() + --- End of stack trace from previous location where exception was thrown --- + at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) + at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.GetProperties(IStorageAcc + ountsOperations operations, String resourceGroupName, String accountName) + at Microsoft.Azure.Commands.Management.Storage.GetAzureStorageAccountCommand.ExecuteCmdlet() in C:\ + zd\azure-powershell\src\ResourceManager\Storage\Commands.Management.Storage\StorageAccount\GetAzureSto + rageAccount.cs:line 70 + at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.ProcessRecord() in + C:\zd\azure-powershell\src\Common\Commands.Common\AzurePSCmdlet.cs:line 642 +HistoryId : 8 + + + HistoryId: 5 + + +Message : Run Connect-AzAccount to login. +StackTrace : at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.get_DefaultContext() in C:\zd\azur + e-powershell\src\ResourceManager\Common\Commands.ResourceManager.Common\AzureRmCmdlet.cs:line 85 + at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.LogCmdletStartInvocationInfo() in + C:\zd\azure-powershell\src\ResourceManager\Common\Commands.ResourceManager.Common\AzureRmCmdlet.cs:lin + e 269 + at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.BeginProcessing() in + C:\zd\azure-powershell\src\Common\Commands.Common\AzurePSCmdlet.cs:line 299 + at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.BeginProcessing() in C:\zd\azure-p + owershell\src\ResourceManager\Common\Commands.ResourceManager.Common\AzureRmCmdlet.cs:line 320 + at Microsoft.Azure.Commands.Profile.GetAzureRMSubscriptionCommand.BeginProcessing() in C:\zd\azure- + powershell\src\ResourceManager\Profile\Commands.Profile\Subscription\GetAzureRMSubscription.cs:line 49 + at System.Management.Automation.Cmdlet.DoBeginProcessing() + at System.Management.Automation.CommandProcessorBase.DoBegin() +Exception : System.Management.Automation.PSInvalidOperationException +InvocationInfo : {Get-AzSubscription} +Line : Get-AzSubscription +Position : At line:1 char:1 + + Get-AzSubscription + + ~~~~~~~~~~~~~~~~~~~~~~~ +HistoryId : 5 + + Get details of all errors that have occurred in the current session. + + + + + + ------------- Example 3: Resolve a Specific Error ------------- + PS C:\> Resolve-AzError $Error[0] + + + HistoryId: 8 + + +RequestId : b61309e8-09c9-4f0d-ba56-08a6b28c731d +Message : Resource group 'contoso' could not be found. +ServerMessage : ResourceGroupNotFound: Resource group 'contoso' could not be found. + (System.Collections.Generic.List`1[Microsoft.Rest.Azure.CloudError]) +ServerResponse : {NotFound} +RequestMessage : {GET https://management.azure.com/subscriptions/00977cdb-163f-435f-9c32-39ec8ae61f4d/resourceGroups/co + ntoso/providers/Microsoft.Storage/storageAccounts/contoso?api-version=2016-12-01} +InvocationInfo : {Get-AzStorageAccount} +Line : Get-AzStorageAccount -ResourceGroupName contoso -Name contoso +Position : At line:1 char:1 + + Get-AzStorageAccount -ResourceGroupName contoso -Name contoso + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +StackTrace : at Microsoft.Azure.Management.Storage.StorageAccountsOperations.<GetPropertiesWithHttpMessagesAsync + >d__8.MoveNext() + --- End of stack trace from previous location where exception was thrown --- + at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) + at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.<GetPropertiesAsync>d__7. + MoveNext() + --- End of stack trace from previous location where exception was thrown --- + at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) + at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.GetProperties(IStorageAcc + ountsOperations operations, String resourceGroupName, String accountName) + at Microsoft.Azure.Commands.Management.Storage.GetAzureStorageAccountCommand.ExecuteCmdlet() in C:\ + zd\azure-powershell\src\ResourceManager\Storage\Commands.Management.Storage\StorageAccount\GetAzureSto + rageAccount.cs:line 70 + at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.ProcessRecord() in + C:\zd\azure-powershell\src\Common\Commands.Common\AzurePSCmdlet.cs:line 642 +HistoryId : 8 + + Get details of the specified error. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/resolve-azerror + + + + + + Save-AzContext + Save + AzContext + + Saves the current authentication information for use in other PowerShell sessions. + + + + The Save-AzContext cmdlet saves the current authentication information for use in other PowerShell sessions. + + + + Save-AzContext + + Profile + + Specifies the Azure context from which this cmdlet reads. If you do not specify a context, this cmdlet reads from the local default context. + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + None + + + Path + + Specifies the path of the file to which to save authentication information. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Overwrite the given file if it exists + + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Overwrite the given file if it exists + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Path + + Specifies the path of the file to which to save authentication information. + + System.String + + System.String + + + None + + + Profile + + Specifies the Azure context from which this cmdlet reads. If you do not specify a context, this cmdlet reads from the local default context. + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + + + + + + + + + + + + ------- Example 1: Saving the current session's context ------- + PS C:\> Connect-AzAccount +PS C:\> Save-AzContext -Path C:\test.json + + This example saves the current session's Azure context to the JSON file provided. + + + + + + -------------- Example 2: Saving a given context -------------- + PS C:\> Save-AzContext -Profile (Connect-AzAccount) -Path C:\test.json + + This example saves the Azure context that is passed through to the cmdlet to the JSON file provided. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/save-azcontext + + + + + + Select-AzContext + Select + AzContext + + Select a subscription and account to target in Azure PowerShell cmdlets + + + + Select a subscription to target (or account or tenant) in Azure PowerShell cmdlets. After this cmdlet, future cmdlets will target the selected context. + + + + Select-AzContext + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Select-AzContext + + Name + + The name of the context + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + Name + + The name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + + + + + -------------- Example 1: Target a named context -------------- + PS C:\> Select-AzContext "Work" + +Name Account SubscriptionName Environment TenantId +---- ------- ---------------- ----------- -------- +Work test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... + + Target future Azure PowerShell cmdlets at the account, tenant, and subscription in the 'Work' context. + + + + + + -------------------------- Example 2 -------------------------- + <!-- Aladdin Generated Example --> +Select-AzContext -Name TestEnvironment -Scope Process + + + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/select-azcontext + + + + + + Send-Feedback + Send + Feedback + + Sends feedback to the Azure PowerShell team via a set of guided prompts. + + + + The Send-Feedback cmdlet sends feedback to the Azure PowerShell team. + + + + Send-Feedback + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + + + None + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1: -------------------------- + PS C:\> Send-Feedback + +With zero (0) being the least and ten (10) being the most, how likely are you to recommend Azure PowerShell to a friend or colleague? + +10 + +What does Azure PowerShell do well? + +Response. + +Upon what could Azure PowerShell improve? + +Response. + +Please enter your email if you are interested in providing follow up information: + +your@email.com + + + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/send-feedback + + + + + + Set-AzContext + Set + AzContext + + Sets the tenant, subscription, and environment for cmdlets to use in the current session. + + + + The Set-AzContext cmdlet sets authentication information for cmdlets that you run in the current session. The context includes tenant, subscription, and environment information. + + + + Set-AzContext + + Context + + Specifies the context for the current session. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Set-AzContext + + Subscription + + The name or id of the subscription that the context should be set to. This parameter has aliases to -SubscriptionName and -SubscriptionId, so, for clarity, either of these can be used instead of -Subscription when specifying name and id, respectively. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Tenant + + Tenant name or ID + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Set-AzContext + + SubscriptionObject + + A subscription object + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Set-AzContext + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Tenant + + Tenant name or ID + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Set-AzContext + + TenantObject + + A Tenant Object + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + Context + + Specifies the context for the current session. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Subscription + + The name or id of the subscription that the context should be set to. This parameter has aliases to -SubscriptionName and -SubscriptionId, so, for clarity, either of these can be used instead of -Subscription when specifying name and id, respectively. + + System.String + + System.String + + + None + + + SubscriptionObject + + A subscription object + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + + None + + + Tenant + + Tenant name or ID + + System.String + + System.String + + + None + + + TenantObject + + A Tenant Object + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + + + + + ----------- Example 1: Set the subscription context ----------- + PS C:\>Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" + +Name Account SubscriptionName Environment TenantId +---- ------- ---------------- ----------- -------- +Work test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... + + This command sets the context to use the specified subscription. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/set-azcontext + + + Get-AzContext + + + + + + + Set-AzDefault + Set + AzDefault + + Sets a default in the current context + + + + The Set-AzDefault cmdlet adds or changes the defaults in the current context. + + + + Set-AzDefault + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Create a new resource group if specified default does not exist + + + System.Management.Automation.SwitchParameter + + + False + + + ResourceGroupName + + Name of the resource group being set as default + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Create a new resource group if specified default does not exist + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + ResourceGroupName + + Name of the resource group being set as default + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSResourceGroup + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-AzDefault -ResourceGroupName myResourceGroup + +Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup +Name : myResourceGroup +Properties : Microsoft.Azure.Management.Internal.Resources.Models.ResourceGroupProperties +Location : eastus +ManagedBy : +Tags : + + This command sets the default resource group to the resource group specified by the user. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/set-azdefault + + + + + + Set-AzEnvironment + Set + AzEnvironment + + Sets properties for an Azure environment. + + + + The Set-AzEnvironment cmdlet sets endpoints and metadata for connecting to an instance of Azure. + + + + Set-AzEnvironment + + Name + + Specifies the name of the environment to modify. + + System.String + + System.String + + + None + + + PublishSettingsFileUrl + + Specifies the URL from which .publishsettings files can be downloaded. + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + TrafficManagerDnsSuffix + + Specifies the domain-name suffix for Azure Traffic Manager services. + + System.String + + System.String + + + None + + + SqlDatabaseDnsSuffix + + Specifies the domain-name suffix for Azure SQL Database servers. + + System.String + + System.String + + + None + + + AzureDataLakeStoreFileSystemEndpointSuffix + + Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net + + System.String + + System.String + + + None + + + AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix + + Dns Suffix of Azure Data Lake Analytics job and catalog services + + System.String + + System.String + + + None + + + EnableAdfsAuthentication + + Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. + + + System.Management.Automation.SwitchParameter + + + False + + + AdTenant + + Specifies the default Active Directory tenant. + + System.String + + System.String + + + None + + + GraphAudience + + The audience for tokens authenticating with the AD Graph Endpoint. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + ServiceEndpoint + + Specifies the endpoint for Service Management (RDFE) requests. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + ManagementPortalUrl + + Specifies the URL for the Management Portal. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + ActiveDirectoryEndpoint + + Specifies the base authority for Azure Active Directory authentication. + + System.String + + System.String + + + None + + + ResourceManagerEndpoint + + Specifies the URL for Azure Resource Manager requests. + + System.String + + System.String + + + None + + + GalleryEndpoint + + Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. + + System.String + + System.String + + + None + + + ActiveDirectoryServiceEndpointResourceId + + Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. + + System.String + + System.String + + + None + + + GraphEndpoint + + Specifies the URL for Graph (Active Directory metadata) requests. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Set-AzEnvironment + + Name + + Specifies the name of the environment to modify. + + System.String + + System.String + + + None + + + ARMEndpoint + + The Azure Resource Manager endpoint. + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + ActiveDirectoryEndpoint + + Specifies the base authority for Azure Active Directory authentication. + + System.String + + System.String + + + None + + + ActiveDirectoryServiceEndpointResourceId + + Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. + + System.String + + System.String + + + None + + + AdTenant + + Specifies the default Active Directory tenant. + + System.String + + System.String + + + None + + + ARMEndpoint + + The Azure Resource Manager endpoint. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix + + Dns Suffix of Azure Data Lake Analytics job and catalog services + + System.String + + System.String + + + None + + + AzureDataLakeStoreFileSystemEndpointSuffix + + Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + EnableAdfsAuthentication + + Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + GalleryEndpoint + + Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. + + System.String + + System.String + + + None + + + GraphAudience + + The audience for tokens authenticating with the AD Graph Endpoint. + + System.String + + System.String + + + None + + + GraphEndpoint + + Specifies the URL for Graph (Active Directory metadata) requests. + + System.String + + System.String + + + None + + + ManagementPortalUrl + + Specifies the URL for the Management Portal. + + System.String + + System.String + + + None + + + Name + + Specifies the name of the environment to modify. + + System.String + + System.String + + + None + + + PublishSettingsFileUrl + + Specifies the URL from which .publishsettings files can be downloaded. + + System.String + + System.String + + + None + + + ResourceManagerEndpoint + + Specifies the URL for Azure Resource Manager requests. + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + ServiceEndpoint + + Specifies the endpoint for Service Management (RDFE) requests. + + System.String + + System.String + + + None + + + SqlDatabaseDnsSuffix + + Specifies the domain-name suffix for Azure SQL Database servers. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + TrafficManagerDnsSuffix + + Specifies the domain-name suffix for Azure Traffic Manager services. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.String + + + + + + + + System.Management.Automation.SwitchParameter + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + + + + + + + + + + + + + ----- Example 1: Creating and modifying a new environment ----- + PS C:\> Add-AzEnvironment -Name TestEnvironment ` + -ActiveDirectoryEndpoint TestADEndpoint ` + -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` + -ResourceManagerEndpoint TestRMEndpoint ` + -GalleryEndpoint TestGalleryEndpoint ` + -GraphEndpoint TestGraphEndpoint + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + +PS C:\> Set-AzEnvironment -Name TestEnvironment + -ActiveDirectoryEndpoint NewTestADEndpoint + -GraphEndpoint NewTestGraphEndpoint | Format-List + +Name : TestEnvironment +EnableAdfsAuthentication : False +ActiveDirectoryServiceEndpointResourceId : TestADApplicationId +AdTenant : +GalleryUrl : TestGalleryEndpoint +ManagementPortalUrl : +ServiceManagementUrl : +PublishSettingsFileUrl : +ResourceManagerUrl : TestRMEndpoint +SqlDatabaseDnsSuffix : +StorageEndpointSuffix : +ActiveDirectoryAuthority : NewTestADEndpoint +GraphUrl : NewTestGraphEndpoint +GraphEndpointResourceId : +TrafficManagerDnsSuffix : +AzureKeyVaultDnsSuffix : +AzureDataLakeStoreFileSystemEndpointSuffix : +AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix : +AzureKeyVaultServiceEndpointResourceId : +BatchEndpointResourceId : +AzureOperationalInsightsEndpoint : +AzureOperationalInsightsEndpointResourceId : +AzureAttestationServiceEndpointSuffix : +AzureAttestationServiceEndpointResourceId : +AzureSynapseAnalyticsEndpointSuffix : +AzureSynapseAnalyticsEndpointResourceId : + + In this example we are creating a new Azure environment with sample endpoints using Add-AzEnvironment, and then we are changing the value of the ActiveDirectoryEndpoint and GraphEndpoint attributes of the created environment using the cmdlet Set-AzEnvironment. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/set-azenvironment + + + Add-AzEnvironment + + + + Get-AzEnvironment + + + + Remove-AzEnvironment + + + + + + + Uninstall-AzureRm + Uninstall + AzureRm + + Removes all AzureRm modules from a machine. + + + + Removes all AzureRm modules from a machine. + + + + Uninstall-AzureRm + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + PassThru + + Return list of Modules removed if specified. + + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + PassThru + + Return list of Modules removed if specified. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.String + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Uninstall-AzureRm + + Running this command will remove all AzureRm modules from the machine for the version of PowerShell in which the cmdlet is run. + + + + + + + + Online Version: + https://docs.microsoft.com/en-us/powershell/module/az.accounts/uninstall-azurerm + + + + \ No newline at end of file diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Common.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Common.dll new file mode 100644 index 0000000000000000000000000000000000000000..bc1ec1ba32a43755f235e62ff33e4fee508d2c4f GIT binary patch literal 255360 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%0D!J2@=p{<@ZYBDT5{-0J<#v`5eM^ZBs8&h1 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


E)^f(Jxwz-MgT|fz}uh}yyccvh|SVouizppIe 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 literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Storage.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Storage.dll new file mode 100644 index 0000000000000000000000000000000000000000..a8d1c18fa55ae25a09db4fa5ce917d563f67cfd1 GIT binary patch literal 19336 zcmeHu2Ut_fw(#sUniRo;C>TH#5yB2l5RncdQly9|2q6g&2?-=YiVaXv>>aU!4SU0O zP*f}&d+!bGy*KRtnw z{CH9DuR%U!>vgQsLtC_to9`g{9ygCl70KBdGHHs8m(J$%Boe8Dog`$-vLtMggzXm= z$xfFFgdAO6?M|wy!~GHJOVCm6j47Yht<@t7whloeWCj#XCAEJ~__E>kf)^nJDos=N z8xwH0qP8Iv&Rb|pJphPbiwlq5AGWcF;Tb$LettHq(xB?s&@sMAP}0{ z1EG8s?XNy&v|+%_u(6=gM^FhMKv$FmDq%*mHbh9sA1ytpUiPJKFh}iQ=>|83~Kcfb#j&x4*R>%!+IRl%_JIZGqiJMcwjC>Wd$!G^sI^ zv2CIJ(yiO!8j|R?t>{t{Wri|=`^2(wq0y!7fou((W7)uD7?A{m3J?sSWh?FPE3=06 z)z)U&6w$0rft_KeAu}dWMmMI+0zPz1)Ru#sYhw=f-*N!w-_+6ZuQ`lJIwfkjuQVwz zL+5b2+IG4!4(<_)>Js$WfhLOs0v-T`BsWK3v6^y5HXSsd!bAvunu zBi9X6m`Dt;0c6;6BtilWgw}$fSw<>kB1wuIa~QOQeFw!Yqa)E=kQ3Ow$TBcG$Pd0N z0e=8;VCf^4CShiHK%|Hm(`tEjgNK1$ds9B&KE163hicySvT zhq|aQLbDkd$EAyDkC-gfo{r&o3fj^xGL4W3DrTV!+FCjbN$GbOEL2CsFp5flrP2#1 z_y+~uDS9lG?#0*zoCInKHGI^->FdNJrZ)1?a?)U-2BHGm(uY=9sD!D_Vxbu3N#Hp| zi~{II8^zE@JmAzu!9a_g@Qy#2% zt;zvQL9kUIt;G0DC8hzm0V*ea82*sLB@9qYRu0P_=1vzC5C-TT%Y^9<>)HzPeb7vT zK(?raXo>bS<^h~eEF${lZzf6rG8iSwNkz4~9W|E#r}C-Q&HN54{SFKK4$~kap&fO( zT#bsRTA0~r17P87oLi)6qZI>v9H7Enw6=kc;i)iO3j>K%m;sD}fn-X|_%xG%(d1Fs zXcbmSVKX&nGItS7RH?#pi5kGFRM=Re7O;IPtUqy#V4+JY3~6EPnF{Mg02G>tDrd(=gR)dAK4IjOMKfSDq16?PCXyoU%RCGbvZ2arH3 zU<-W@rLdoA$Py$BIH`05Ky})pF-;&N5GNYyMi>~-Q3jj@{~D#3>Km?8Sx*zxLU>JE z0%W3gRN5S%HsS&_KyDQDreF{S`%y5Kf;YK_In8X1R#EB00NbNtD*X_> zMds)O3T9fPhiJMMi8cY<1)vk77dnmJ!9Hq7oYxFSrKpx3i7q27r|pRSnu*Aqc&(9w za)I9f-9*`1kw96bB|&-x5 z4A2rq0qln20Xm{t0Nv3BfWBxKz+iL-U?j?3P^3e!Lrvdb)>RgJ3q2=_YXf)Kk zl%njXT0sPEkxjv_#6)Pti%JJk=|n1>Ps9Bwqu^c&)>9DCF`Z38FA647FrR{D6x>U} zdI};2=8pquAz-I!!2Sd=LOnF;G=wHma4QA*6dXcm0)2!=3xFwFtpF-1CCqk^E+xzW z4kRoAGPE%Cfi$j}4)tRThz2PQfDC8_<2nFYaN5z}{L=?MEr2wn4H88_UQ0;pAtQkL zs5MXw0MdZk7N8->8x8W>BSt=!OXY*VV`1+p^^J-MGdqY%s<|*S9DTv+i+V7B3%V2?;(tei|s* z0Fh8EKs|k>5^R9}lpzr+^73P^3aCnKWHRNf9a%@aT|SosbFT(kvNY7$}owWhk?hL-6MFrBEY9!o?za z@+fJVQ1T<)TOyU@rc1Nr%`+sp4cs=uMSZix3K%2Rs5-4~SB+C+Q;pn*CkJL_Hv*)x zbe`m<5CD2nPwP}O@?hN1v#OlIGy<;rKb zDiR1~jc1~2-W%z#KN1>ei6`N~c2o}m??*o=KAn{t8~IBF8B&o%p*#%$A`TzU0X4s$ zh?gRf$`vBMTuo9-kGcxgiQJU0S|9m8yRgvz455sg5Owe65J^y;qH?4>SwL9v68{U8 zqacX_6hwwn)EiF?Ir?b@f6PGx}^&WXb3@2|7)Ir;0Hep$k-AG5-e zhQJ)EB;Q{$R3wv1(qYI**es1@v3XyxkpH5K)M&ozSu@7(>A1$`9c{+=9U1d|*X?GE zzoV-TI275~$!3&ao`qD$@c_NWG9gcp>z@PWkUU5dl`2#hqf^bJdc`8Ml9NR_O1V(!P81{$%@T{lWd7+Hid=;9$Ausf;v*T7 zf{`ah$w+}XCq!55c_puSS7Rz8(RUA>_^t|J#}$2quNKK$Xd1j>d&o$0`f+3%XaxNAK=$y5aV~{(R5|#IDfSSfOj7j|>14tfgw%_46wm{l10&H&h8|O?mnG&O zh^s67)-5U761nfoaztk%g25&TO(uYrt#MM1$)*u{0D-`R0F7Z*%Up%5eb-Uo)?Er}D{GG6R| z<4u}PH^abn`-R=!?$>0-ud@AT7NqC*vWX=b%asu1MnTE71aKip9F|j@hxuiYmVhi1 z1f69VLSyN{Cl=m#Je3|AY}DG&8>W*@Gt^WrjbRAPjbSVX@k}UY7!N@Rm~U7Fksh@c zBEt~XHys%C3`LrVZs=i{sYe4YJ@``8OolZyK(|JE8rI52Fd>AYi7N*XPuGO?#D15i zGV}#8db}i2v^Fs^UItj({yBUhWq(GcVjG?SKD>koxe%xwC)7U*EPBe7vQ?RV9zz{C z5G#(-Yt?8>`-$Y>4CGRti3x#PH>x+buT+)+{uj1yA(ToW4KQeh*qMN60J3PbQ`!4g zv42x2e8Cxt$lJR7@9CnyQoXZB=oDC|Eoh?$NvO%M=e<~+a zdS@JVDBSOWB_oswgaWEu3U)hrVzxjy6z(H3ux`S2abTMhh{feNavUHKj0e!zt>62M z$csRZD&MxrJc*J@#d2^ILG`78s{+=WK%ME6B@%;`rh#M5@Q0V85*F~pk>|VdI%1z& z{8N4E!V#cLgfd%px|}bS!Hn3l)vKne&X%pR5IrQqEU+xZw(Rh%B(aDOMgZkadL(u4 z&U5BFyKvncorI*To8`}qDQ8aICMZ2DF(AOy6YlMY|7C33u+#IL?VH>dr}|^M9lSVh z&WAx*|HG#^6zK8)e~{z2c;|oYEcXLeLT6B;?;KA!W9{4|KiGk04%89n!RS(@{* z^Rr`{T-DCTw`}bO%nge%82syq9 ztVTpgI9?(tykd8F;lf7!V3~reD%1tutB`lKSsv!W_X^FQh)BQ4HM2i@2aHY$oH913 zpMTne$+!-`9&x-lZk#+0uKMCsdooU%G$c;7-aZmklnvGLGKkA!8WljPdPkv%?2u~zI)Q%Af zDgREH`^^e!`EmF^SNVUG|FRjt@k_Yt2CMb^j$yrrz%cunj`@1SJHQL%ory8!W59HR zM1N562>|`UAdLj0F$|2%1o(!c0OhSas%AX@icK9l)q-i`*HcvwsCkuART1Dr9XL=c z4~&NZm4Sy1(qw9vVjBvVih^8hM9bmqFub+IXkDSzLdOl9tiC}SVj9}4|az!w{0*j&So zi4fkV_OPpgO*h;t+-ICW6khBmWKi|slInhewnu&8B33;|8Pq!DHaQr-nJYY_GN?~E z8)_pFLCcmF!IiR)MM&uKOvoL|oWj}8@d4dxu*d#c;(PmNm+vx7}m z{BVK85nczlJ;IL!Gyp-lM0oaOfa6(ebaj3q7yo>}I56i}UhtEOETFx<&{hi75}vmV zkPmE1r$DX(cz&j_;l7Ifi@vZa-e1l8P-;Bl$v1!I)E_=`IKweclW>#cNb z1t6{1VQ8Ao|G9N`pw{{Oc79y#AJ^IyZh;7pDmk?S(S&8&d`&W`?Hul^k~K>fxI?mx*w%Pf|bO;PWn_qv1zt*p>88AwSqg5c_tx-6~4 zqTYm%&Y;1M9LPA9b~hHmAPT$F2u4{b*_UkFjG|9!(Fs(>SVGH3B=?814ECUlD<=gR zy|yp&oN&>}>BHnMX6LnA)eblF9RB!7RoSPFWrey0WFhk#SxCQMMyC-pnvo-@>T$BR zvevO)f8v{8z;Lyy&JsG%rIB16Qj0~8X0VKC(UDvuvL!||jkIHU@>B?5E2I*x0jYG(~UYdn%v-)3xw=QQHlg=WrzEEvmHn-mo#gu z>p+r@q!ZWG(aov*KtQ>GI;v1o@o(v$s{i!g^q(vwESgUgtR20O(1*1qv}uL#W0@1% z59`P)--lIdTbOVXvp15l6>Ii7?A#POcG@)2)(qCd*}-EsYY5D4IuT*D1t&6eTln7Y zur%Jov+cT@rwVwO^_N*!}t9Pl0d2tnuY8x21abfL*HUx#Vpjj!0+QY zXqc(|B%_1|f=VncBu2uF-Ua zXAV8MBfM(hZf%#XuDVm7FbA#>?e@}XxN*HIYK42|vc9V$)`ZDNkcRq?-LKxW88V@) z@@(BsdpSRv#hYC6+->EvjxnFzb<7T*YV&AjLZ3{d_$fCQ*^Ig0_hpS)bf8zkeP zW^M|l`J}C63V0>*XI*vUdqy`12Gyg8?FAi8WuzIHDkDE zsy{yF9*_07m^UHoX(;XP!aa}f4_$>Uq#YxoQZ`I9>22+vQFLxEd-27=8^aeJ*fFjC z%*z``+U?89t&y6)_b=5jv|BkcrG7z#q1CkOq{eK4FmznHR>i`$8a-CdnE5()QKdYg z{!roZBUXtP5n&oMF@%5F(9#2a~P7m9V{A&F5 zV>%=6hUc%Fo+AF*_4twN=fX}7xp;WrA93BLC#Thl_FRx`OVZh;<-IzQHBPu?pPTWY z{%egr%x@0+TG?Q@JUsr^y1X}cg*gv*T;ff+GxCz7-Iw$0M>;<&hF@Y#zS6PWWKzA( z;33??K|U1`JBzkd6{guwz0tw0?T6D0*T@58p++94fh460(B|n)J42~I`VYcF7L5P5 z9IbGg<1I-y>e_VlM@S*u>5K16lkpuR1V-V)Q7VI5|3)PMs-QdR>OeZXk#1NCxKJpU z#OQxqNfpw5RtGe!4rrhbV9%|2@lj^bfwS(CWOboIh*Q<8Z3D~~`?R-7dpIzB^$wP+ z2_vX#)czJ`*Sn|H8eY59=WMZVu3+5AS&5y*8x{pEc$hl)Ox^s* z&Dys6H(XxTZGE2BhKqAzk0hEfA0`id;1JQ-(Ek1!&G3_ze%s?O9pKQj)}+2Zn*O>+ zTzQ)}0af*`g0&KXbIyt~zP{aAubB zB@H?30k%f*iL>YR3UeHDW#jm^Hx`AynX_?MK$&>%nfeRkC+Vow;ZsnD4@m=-mdeU& zO)$U^L(TNxFO^Zd#saNqj233v5ZTBA|Hv14lREgg*Jt2rib(y&v!6-QK?QuL=45s~ zXxwSOf3#wT-h5Q?C-<~vu@gBEm*~g6qZ)KqN97=ncNoBYJ>?K+g=U(WvA0ef8Fi*K>LXMp1@U0UyH8t_gFYDFNqh9nKoi# zKzQ_}7BhyQF$wPQx~I>?h*KNCq}}eN!Rb2xo=5xT=eC+=&vLu+f#p^7Pd8*LoXDtxM*H=y~Y8(k#BvaleD{trrLFP7GSKCCE*?R(oIV zy7hNAU%uLUd_VsIt`3=9Oh#>b)1~2tZ4b6+?&jFyREe}=yJEi=leL1dvF=sqX%v#I zv$rzj?ais9I!IfO@UIwp*ULt@bbowAQqg`>zDr3_-Ido3uiBK)>vHq>@{&`};`!dU z2Wc!A*Nc_SI?dXY)v?uX9&hW5YqjkeyX(CF)U$qeLumh`yqVK z!MzPi^E;kGT@P-WzueP5+swK4%#tOG^YSb{_MY8w&8I-i{I`o5_M~kOF1htME63!? zqwb}-#=+k%R9dEH-P`c-^TfwG`Hw{I8$Ody8GWbJ)n%pgr+b`U*grIEPkxL=c}`0Q z^StNY+M7H-tvt3YzNUQq{Fu!Cp}qb0`W&7=bdYv_@3b$ui)*UW(}x_6kQ?ddg&*e@ zwoV}nTl2yFBMWB#rxn+4J-}v8X<5N~5)L4hPpC!bwrDis!AS)_ugPWA;p&0?*@U+y z?VAcRxE2idt9b(!j_b*u)Hd1c$=6Xw)=lmp?9cT3#^04Rv2D<&X%(bTv*IndPNYLw zt9-+s<6z|``NqH7)6KUXIA)AO0)=U}Z71CKa;x>%3KRZR+hqqv&WZQ_JkK-GHRPhz z`rv@d*?o-_f*HnU3tjbXix1qK{Ln>Tv%B4f_FF=e)4P7{o<47Ks@@STpL^)!?B3?% z>J}be%8K}7OQ=us!s)knpN|_oTx#%e=hno#JdiPs&o0&Okue{&4Qu8*et?rvRH*~6s?KyGh>Z`QrqhhDfL z?!050^Sp+q2T$a#oj$+C<0ECm#>d*nCTSa<@LRaKywLC^S!npQadPQ&f?H^K9cY&u zR|v-@437Y*mPXKjj!hI2(JURc6c|8wqLA=|x%C2-))S;zRrQ!yZ94Ib;6%c~-KS2M zyw)un_N*?+NN)YiBy$G;h{AhM&H1pgZb8#&tc3Aiw>5N(jT}hI@9)lq)pzR7adL1O zNHX$i#GA5$bIS@&lLaUKEoSLI;Z$}eJAvi_|I;)ol_wU;*-?>^Z2!p69xkMhubsc6 ztD~KRi=#8winPRhbfXSUmTnaM_Sz19y^x;4R{hqntWeL7EM&Zeu*~&lVVTZ#Rlyd2 z6c)n&-+-`8=jK9XI=QA$vHLSW=1>B?&~$fW!oU>lM|lxMK=X=-v8;;=1G;6 zVbOqob1In5oFj47OZJxCn!+z1F!NGc@=?RxZN3V0(ygvc7%X~}p8e82vwm-Dqn^)< zCu{H9V?Dg^)5*2_auaVcP7LEz`mB`aUu8YWyKUQk^cHuIiDZi!yUnp4M)w8io$09t zQ=fP9U54+QG_3y5WzsG3b-wS5%pV>c8kaNwCfjE*jVaJ5H4u+yw5l*S^Ds2ed!vm^yH5dNkQzX_bbN5Pm6x@JnNC1iSNPGQGo#6ORlSTTQx_^wj7~v6EFL%!#KWt$L7!t^9 z&ZmW`52bIqyxy~D{=$*Ya&F$1oq@JyJxZ3JlXYC}bi*x~KeH|E!FCzH#^(O5Neg_h z%xviq*~-QAJl*%yj*_`+zw{`J8N!+IGFzraw5xvg`HBOoyppkz(PQx25tFXX_vqFy zKjDch-Bb6;;?f6SLiPPKJG32=>$1AVb>YlGFNQFVKdZYi;acB#gV$$T#V1+KCrGdU z%!``$UsvX&7=B6l>~%$Y`l4%P+phgRKdc&(SP}g$mJ_hJRb`ZO?1Ji()%ho$XWkOm zZO=Y@VgAfXEg#%FT{p2!YL#fd<=u^w!`IAs_HeV$z_G8B?yj0qSXCCd>H=NoVJDw! zvf05|wwZI&$wF2p9DcFtV1!ly{%^lFMy)VB3U)`|tAh4c*== zx!a%@ts}cIxE;OQo6I&np=C5>IFF3oMEdE!OdLNZ%D2VEkR7g?l|I*JuDu{9V>%Zu z_18W1=xt!Z@jaaq9R?%@yc!T#DVRYPO#RLaFCabC=O1|C+}|Ft z;lV*l7u+{I(q14;=D~jj`v-h*{IicH9~}SY^&j%VHSUe?r+cfmey(RhCf#G<(sFZY z<>M8{-g0-JWZqi!^fYXekyHKW%0*VUKkRy%78Rq}tzV&^;io?$ zCmnl}XgFc$F)uIg`PbswevA7sxUKWtPW^)w&wUIIZP+uacGRoxBL;eQcvYI)XLqSMcQhn>{1>u~zzd z9JiREOEOopCg>Npsp3_%JUZ`^Uf{g^gQt#HoO(WD^oyJBnOb%6in$h=yek{S&7{>Y zZ=$;UT#aQjd%PD0<~(Rv*?Z0V8?uqSG->v#f}<5$Yu$D}sXcnBaEt7?>6;y63A6l9 z?Tc-q+%^xoa!5D2G;f^TUGv^tyGN7j9XWSF%>(Av-|);l(>x;kfbh0l`1 zC);_4)E9lQnYXlMGI@5V!XdbhKkRMk1pD@Xns12Ry8fD9&yw)Wi{)nyM&B0Qh^aY! zgWUV&*u9WXx_jco9xgO%=W4&}e+;;Hx%Q8 z49g2?XCO4|PWj-U%l~(}6-z9&A;h4;Vs_J`(@f~Ck#>rMo2c|apNDHg3tnEUDyz-= z_PGq=WCi)lM*fF&R#Kc1(#gTu*=b-S!Bs^dv*CbI#v8!# zWDs0?F!!`o72v?CHUJu}lbi;@Pz@^GvOvku?~fUn!KGPo8orip3}9eSmR6=sYT{ya zjdFImI!zRnH8)S7%k+W*WPj@Jq@{0P$#(L^b!I<@jJ8=u? zy5K`@BF@r9paM-j|>@1GhyI=Ox!vtqZn zJm3Ga-ISTGuNrE{J)T%`>Cis1;A682X!hKKM`Xc$vfvI`P|aYwd^!1iQT5=A7SD&w zoRcCB7_Q~GKJa0?BhR_%?pj(|`eeb}|AMXX>xqNFS&PyUH3!`i505!IAg^c-BhhA4 zLxonR;+tNeEJi=bJg>PxLVN%Ry~dREDH(9R?(R8z`zwPYQ}PNHH1tpPja)lv-H?Q_ zpRONjs9ryLc-N<*F}=5qvl;WazSHr8|?`qaOV literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Strategies.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Strategies.dll new file mode 100644 index 0000000000000000000000000000000000000000..7e8bf47cdf32840229db8b4b804f485b6b6bc79a GIT binary patch literal 64392 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

-$HGIUk^ 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 literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.WindowsAzure.Storage.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.WindowsAzure.Storage.dll new file mode 100644 index 0000000000000000000000000000000000000000..70c5ed6806c621bab9cb23092ee5c2a15507290f GIT binary patch literal 784496 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�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≫Zn-u5hbIohnjyer3n!(tuwXtqw>bzDs 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 _ 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

-YkOxx# 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

H;Oqm`#xdum); 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�#^Zj03zd``IzuJV(sbnCI9{Fd;*jVCFg0BF$?vO&T`W%`tXuCs7Ax zR&G1Vu5Bu1wo=h|?5Wr&Q?b#W3YH;KLBeN_qad4te8TgsG=S!j!n`yupu80ntf8Qc zf_Er5fMDtk3fRg+Dl(HsoccuwEn#fVHBiyGu|8T!PgtX*&Re6zf%RYo-BljQHs>IC z$!OOdQ-IVRQ-ED}gbYz@1xU?U&L~;QR;!mbR$`@PpOTdp(rt`L%L=>N*NB|T6T))M zt~QmjOhRByL{M6T^n|%Yr5OmUq#`udNtK1sDotu(+FCiLT`-@MDMH5LKtkrmQg;L} z<1T?s6DZGE1y(niG7@pCTNOo|?29-7mDP=cHWcs_kd7+dN5K(EB&-+)Qq@+PUDhEK zu$n0p8%aSr1tdpS5-TfBYO{$AcLSBTbq-*q!YTokY!Z2c2(73l>eLi@Dw;Ur94UOZ z^i8pw9mbi`V3`6?>m@Qsy-f{JHo%1gpTI!QK{HU3?CErpEETj!apflq+$PD zwGNc);HGt?r`o|?>%<~z)aEqx-LzAUrUBYH{Mm2m2yQdm(MxC8_<@ zwe11ITGogIaguQ)kg2qfnpKrup?uTIWh$cdMc*Xk6>58;FV>ktrU&9hLe!OW)D*#r z!)U0$H}3%An|FWK&EmJ8VrJAMY60NLm5hMlfN5~8;u&{ zK{uLeC6E#pDMEx=!7jU0U@1Ll&kZO&)Sg-w_JsJTeY9?JoDF=sCai{5AlG;oMy zxRzGvz6qj(EyV$e5Gl>@*VAIx0Up@_f!$q8Dv;3B&^n4SfNKaiVP>)hSYL$%GQ9*^ zF)EY`fGb7~NG^&fE{e6B7*HzYMJT0x4;7)AL?jt6s>L4A{)RA0ycLro513s~p!&Ru z^%%^$!IZS|8XoAmKd)kAP$`3<)$%IFgQ|1UjmEqK>!?tGCN1H`V}+^_$UG3hJ17uT z&S$N(;2p3e4W(QV_mo0ttRb&bG)6-wG(`QVK&f3GYor;kQZ!;;nH4|-ep(nCpk8FT zz3r>a1lR2|No}-YY6BsV-xlTzJ+P%!6U;)o#hVrvm3QqrqHJN8g_$9>FF{Qlpd^

r1 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 literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Azure.Core.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Azure.Core.dll new file mode 100644 index 0000000000000000000000000000000000000000..204192712c269e12a293ed4267585f9262992765 GIT binary patch literal 151936 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

RF{eI=gCp`63&yO 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 aok~A<-HE?W^)_`9L%-_>s-#m5X#WSf38Nzb literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Runtime.CompilerServices.Unsafe.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000000000000000000000000000000000000..be64036f12fe7cba2ad12805e011cea81b2320f8 GIT binary patch literal 18808 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�Q`Ssy68Q3pJ*Q4?78tE6iEZ%EU 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 literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PostImportScripts/LoadAuthenticators.ps1 b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PostImportScripts/LoadAuthenticators.ps1 new file mode 100644 index 000000000000..a193686a117f --- /dev/null +++ b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PostImportScripts/LoadAuthenticators.ps1 @@ -0,0 +1,197 @@ +if ($PSEdition -eq 'Desktop') { + try { + [Microsoft.Azure.Commands.Profile.Utilities.CustomAssemblyResolver]::Initialize() + } catch {} +} +# SIG # Begin signature block +# MIIjkgYJKoZIhvcNAQcCoIIjgzCCI38CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBn8ROze2QLH/c6 +# GtPhR/BPLgOtmjkNhcq+fFmu16VcrqCCDYEwggX/MIID56ADAgECAhMzAAABh3IX +# chVZQMcJAAAAAAGHMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjAwMzA0MTgzOTQ3WhcNMjEwMzAzMTgzOTQ3WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDOt8kLc7P3T7MKIhouYHewMFmnq8Ayu7FOhZCQabVwBp2VS4WyB2Qe4TQBT8aB +# znANDEPjHKNdPT8Xz5cNali6XHefS8i/WXtF0vSsP8NEv6mBHuA2p1fw2wB/F0dH +# sJ3GfZ5c0sPJjklsiYqPw59xJ54kM91IOgiO2OUzjNAljPibjCWfH7UzQ1TPHc4d +# weils8GEIrbBRb7IWwiObL12jWT4Yh71NQgvJ9Fn6+UhD9x2uk3dLj84vwt1NuFQ +# itKJxIV0fVsRNR3abQVOLqpDugbr0SzNL6o8xzOHL5OXiGGwg6ekiXA1/2XXY7yV +# Fc39tledDtZjSjNbex1zzwSXAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUhov4ZyO96axkJdMjpzu2zVXOJcsw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU4Mzg1MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAixmy +# S6E6vprWD9KFNIB9G5zyMuIjZAOuUJ1EK/Vlg6Fb3ZHXjjUwATKIcXbFuFC6Wr4K +# NrU4DY/sBVqmab5AC/je3bpUpjtxpEyqUqtPc30wEg/rO9vmKmqKoLPT37svc2NV +# BmGNl+85qO4fV/w7Cx7J0Bbqk19KcRNdjt6eKoTnTPHBHlVHQIHZpMxacbFOAkJr +# qAVkYZdz7ikNXTxV+GRb36tC4ByMNxE2DF7vFdvaiZP0CVZ5ByJ2gAhXMdK9+usx +# zVk913qKde1OAuWdv+rndqkAIm8fUlRnr4saSCg7cIbUwCCf116wUJ7EuJDg0vHe +# yhnCeHnBbyH3RZkHEi2ofmfgnFISJZDdMAeVZGVOh20Jp50XBzqokpPzeZ6zc1/g +# yILNyiVgE+RPkjnUQshd1f1PMgn3tns2Cz7bJiVUaqEO3n9qRFgy5JuLae6UweGf +# AeOo3dgLZxikKzYs3hDMaEtJq8IP71cX7QXe6lnMmXU/Hdfz2p897Zd+kU+vZvKI +# 3cwLfuVQgK2RZ2z+Kc3K3dRPz2rXycK5XCuRZmvGab/WbrZiC7wJQapgBodltMI5 +# GMdFrBg9IeF7/rP4EqVQXeKtevTlZXjpuNhhjuR+2DMt/dWufjXpiW91bo3aH6Ea +# jOALXmoxgltCp1K7hrS6gmsvj94cLRf50QQ4U8Qwggd6MIIFYqADAgECAgphDpDS +# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0 +# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla +# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS +# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT +# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG +# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S +# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz +# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7 +# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u +# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33 +# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl +# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP +# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB +# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF +# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM +# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ +# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud +# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO +# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0 +# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p +# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB +# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw +# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA +# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY +# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj +# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd +# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ +# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf +# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ +# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j +# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B +# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96 +# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7 +# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I +# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVZzCCFWMCAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAYdyF3IVWUDHCQAAAAABhzAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgLwxfLTEa +# f5cZ43nGFJSGxV1AZMu24c5Ln5TdSBDWTncwQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQCyf/LJa/Z5JNuepgZfSusBSM6DXD1kjal/mMJvKd6B +# 4TxMLoCwxn21TOmsVf9HXQCLZ12ZkJYWaOtCjkfXF8abr9YmnjfXKYy7wMAvwh/Z +# JCi3D4MhYmy5DzVE5S+y+KTBuH4cbiQ85ASomr7AH+8+Z/Ib8a9D2+dWki8UibWv +# dLIzHB2BCcg1nq7vXZ+a3lsdzqEAlaHL94R781l9PoKA4PAPCyu4fI7E3ZtiLvGJ +# wh+lWa/dqBE2J8jxbevUzgZCKswoATpOfZYnfyJj4COG4/sq8lkVUyZs5Qf3uHxl +# 2jaAoRvIqfW4XtZE8N4xIKt9urv/EnBGD6AHdJSTfTnZoYIS8TCCEu0GCisGAQQB +# gjcDAwExghLdMIIS2QYJKoZIhvcNAQcCoIISyjCCEsYCAQMxDzANBglghkgBZQME +# AgEFADCCAVUGCyqGSIb3DQEJEAEEoIIBRASCAUAwggE8AgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIPAxdvgOnxDyn4RapJdVAf5LnUuXi5jJH8/S/ti2 +# sRm6AgZf25iWx0QYEzIwMjAxMjI0MDkzNTU1LjY1NFowBIACAfSggdSkgdEwgc4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1p +# Y3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMg +# VFNTIEVTTjo0RDJGLUUzREQtQkVFRjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt +# U3RhbXAgU2VydmljZaCCDkQwggT1MIID3aADAgECAhMzAAABK5PQ7Y4K9/BHAAAA +# AAErMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MB4XDTE5MTIxOTAxMTUwMloXDTIxMDMxNzAxMTUwMlowgc4xCzAJBgNVBAYTAlVT +# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK +# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVy +# YXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo0RDJG +# LUUzREQtQkVFRjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj +# ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJb6i4/AWVpXjQAludgA +# NHARSFyzEjltq7Udsw5sSZo68N8oWkL+QKz842RqIiggTltm6dHYFcmB1YRRqMdX +# 6Y7gJT9Sp8FVI10FxGF5I6d6BtQCjDBc2/s1ih0E111SANl995D8FgY8ea5u1nqE +# omlCBbjdoqYy3APET2hABpIM6hcwIaxCvd+ugmJnHSP+PxI/8RxJh8jT/GFRzkL1 +# wy/kD2iMl711Czg3DL/yAHXusqSw95hZmW2mtL7HNvSz04rifjZw3QnYPwIi46CS +# i34Kr9p9dB1VV7++Zo9SmgdjmvGeFjH2Jth3xExPkoULaWrvIbqcpOs9E7sAUJTB +# sB0CAwEAAaOCARswggEXMB0GA1UdDgQWBBQi72h0uFIDuXSWYWPz0HeSiMCTBTAf +# BgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBH +# hkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNU +# aW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF +# BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0 +# YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG +# AQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQBnP/nYpaY+bpVs4jJlH7SsElV4cOvd +# pnCng+XoxtZnNhVboQQlpLr7OQ/m4Oc78707RF8onyXTSWJMvHDVhBD74qGuY3KF +# mqWGw4MGqGLqECUnUH//xtfhZPMdixuMDBmY7StqkUUuX5TRRVh7zNdVqS7mE+Gz +# EUedzI2ndTVGJtBUI73cU7wUe8lefIEnXzKfxsycTxUos0nUI2YoKGn89ZWPKS/Y +# 4m35WE3YirmTMjK57B5A6KEGSBk9vqyrGNivEGoqJN+mMN8ZULJJKOtFLzgxVg7m +# z5c/JgsMRPvFwZU96hWcLgrNV5D3fNAnWmiCLCMjiI8N8IQszZvAEpzIMIIGcTCC +# BFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv +# b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcN +# MjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv +# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 +# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCASIw +# DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkdDbx3EYo6IOz8E5f1+n9plGt0 +# VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEwWbEw +# RA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeGMoQe +# dGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKx +# Xf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOWRH7v0Ev9buWayrGo8noqCjHw2k4G +# kbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEA +# AaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ80N7 +# fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC +# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX +# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v +# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI +# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYDVR0g +# AQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93 +# d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYB +# BQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUA +# bQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOh +# IW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/15/B4vceoniXj+bzta1RXCCtRgkQS +# +7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlK +# kVIArzgPF/UveYFl2am1a+THzvbKegBvSzBEJCI8z+0DpZaPWSm8tv0E4XCfMkon +# /VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/3cVKC5Em4jnsGUpxY517IW3DnKOi +# PPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs9/S/ +# fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5HmoDF0M2n0O99g/DhO3EJ3110mCII +# YdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL2IK0 +# cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI5pgt6o3gMy4SKfXAL1QnIffIrE7a +# KLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQ +# cdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc1bN+ +# NR4Iuto229Nfj950iEkSoYIC0jCCAjsCAQEwgfyhgdSkgdEwgc4xCzAJBgNVBAYT +# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD +# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBP +# cGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo0 +# RDJGLUUzREQtQkVFRjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy +# dmljZaIjCgEBMAcGBSsOAwIaAxUARAw2kg/n/0n60D7eGy96WYdDT6aggYMwgYCk +# fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD +# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIF +# AOOOqLMwIhgPMjAyMDEyMjQwOTQyMTFaGA8yMDIwMTIyNTA5NDIxMVowdzA9Bgor +# BgEEAYRZCgQBMS8wLTAKAgUA446oswIBADAKAgEAAgIhwwIB/zAHAgEAAgIRjzAK +# AgUA44/6MwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB +# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBABUdoRkAdWw+UMZK +# CPVyA5MwL4Qgt4DYpLk87wNon60fDkSNTPMsNPv3PwnFNwOWJvTCY5zLvzheHSUe +# KhizpPgF8P2Hcv3TcLLJWXSAuWGI12fuxE3PVS47FvESnG022eE9AfW+167OhpV1 +# dfiPE6YXGA0KiuP+ay4fP1uj70hTMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAErk9Dtjgr38EcAAAAAASswDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgS4ozfWHqktk+MEJilHY/UxzTHnVN20GLkcRZZWnOAlcwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCBkJznmSoXCUyxc3HvYjOIqWMdG6L6tTAg3KsLa +# XRvPXzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# K5PQ7Y4K9/BHAAAAAAErMCIEIIJb4J1LeSwa+sbSKDnA6WZNDclHhr8GnJbQnyv8 +# Bs3UMA0GCSqGSIb3DQEBCwUABIIBAFdfTvMDN/hI/of9CFSS0y0koAPYzKy0AoP9 +# wjZGQc1OGjcGmRqXldY9RBJNQTWxkR5LxpaLwtTadjMW8O+b19Soki7KgCEEB2Ch +# j2sPeaXyX1aoyIYlGs/X2dqCimJ4Qce/oHrX9I0Fumfcc1a9BiKSieweYAwYQc73 +# B/E17/RHAGcYFumjS+y1pJhuJdDJuGv7FOT+YV1YI1LBk/owv2HqT7LwDYvLYtEV +# GxGaRb96BEKoQYNIgNS2a9e9SYoAAJaNCbgtbI7COCjCYgIA03m86MWU52EduCD1 +# a82uKezFyx5R1UFMPak4rRn6W/PEpTS2tErb4PdeCKlSbjugrfM= +# SIG # End signature block diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Core.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Core.dll new file mode 100644 index 0000000000000000000000000000000000000000..adf2f550a195376f53fd2d5526e117aed8aecd4f GIT binary patch literal 160136 zcmdSC2bdhiwfEiIJ<~JWyDMqatOBr$KufbTy961KWCH?|!6XBg1Qt0OXqZ6+&9*EY z0Skwi(3p~#&@c)rVJnw@*{jIj|qklFNJa6>F^St}JAK3kaT_-%S`)QY4+8Dd4 zo?Ki%_lmLe&%N@>8WE^Bo|yb)z=s8nUOyENY6W=EAakw z+Y8^^%I(MA(y^YdeLe38-}A~2J8>TFG2EMhp0~iCZ7UN4|bywik#ynkbD)-6RD|1r6=Q`cO0 z{WbXaJsf5Uv$EpM|BZRxIaBpU{d|zd8$4P;kD42Cwdbv#s$Y0{LPYT@o;^i5VY_&T zD>(nxExGb1-h8j<{o`kzcl&gg*KOF&=caRfZ*#}HQ`c^OywdZci56V%{Qk(T@ASN` zWtHGnX&1FNu`0s{+j?QA&`#Z=vMubS4qWu6!48_56qTmI4!W43Gw4|D1k;EtRST|C zNsja5Cj$NWNqkd7k-|`c^R63xxN$In%lz~Zfgn8;K=zH*4#tNGF7<;L`I~H>EV#cv zP3tbi2&6i3pz{PV0;oznE{AxODxWwps1xa`_^2)~gvzeMK`xyqhR5f7LA-}h`?p+` z*{+Eb{icEg`!0@;QjV)KT;`<~2lw^8ML@{+2OIin1hx6Wy@HV+I;s^IH6rmhEEB&@ zG>22CgpbJlmCJfTiFz5*F7WKhaX;RN*qt<|6JgEBWovr}{P+yq@zeN3^&_CX z=vEpn!%6)tJohXcaY?s)0OUQ(7KZo4YZQMiAJ;t&fbhf=U1vEC^$xXLI-`cuewTQD zmu0_vKgU3X-!bpxkTKjAMaK4Q*Vz*lYlp5Ml_b{KOKn7*9#QVvxTL8TTp0MznbnCSo(dnm&Km9B#c+9{3>aOPqDF8oVH?vCwX2K#rXt1r z`(79f6&f{Qa-KNaG$+I_#I(F>F1(fU2|G>cLUx|=KvEWhp&igXV5cF=Ew>$|IcTSR zxRCAn@RlIgtC1_iV!uBvDaGeg^hpLS2_?Beo|4~G$VB5pd{H>y&kiH^u5#ld{5^gt zX7C7SqEam^C3}NR42LiWQ^^xmknPkL0wj9PH5Osq4+@PNGmM4oD2YWSlV>R+ z1ETzyZe^&p=98MYlS%SyrC3#IJO_xX^;~(;v7RTmgPfZ53RetskR@u9Lzn}~Pu0Lj z0K&8>l35&e%C7`5)g4Yu;3~w_vYbI-$T^us3PZ)1$_-hR6y_D;=feTRqp0}B)QG%; zNbyaEufKwpm)wlo#R%&632}=M7WW51{lj2lrlM+KvHh6#9wsj!ii_>XwC^z4Vgw8E ztw0rhFKT>ZY2Y_*6QW-KEM)wIDhRiHf~xitL>R^|bg^9}?dB(E$-kYz?yCE~QlCj^ zo`hm=*+Z>u4xK|N@R$l*NO#YqC$FSwevLb;XumXU=0nQq*Y*wW71YpkCw%$#jc7;vF*qfDt zLKuHaIkDakY$7vl@LZ^DG>YQC6;DYgzEh}$g^{WG)x~~%4^)EW4kAzZ@#{ODIeoOS{#qudTDjy{i5eKJlBNI2mqY_$f?mVi-hQlYSd`3?KAa zo6qByKz=d~;+Fz@O10hUXpmQx7MXfKIj>ZY@GeSTMrgHbB+{H;@E+*$ygsELNg0_6 z04NvyF|CW!NjaUw>hnl!l;aP>i`2H4E4v;|R+M8&xjG*lH4>phHK>zFm1%K;k!s0R zVidoV#D0DC{|>RYi&*?YzVQd-Y}`e*%j#D`J$a=$U)6DbujBkv$2r?^E-ti_A($40 z6FbgJI?j5>Io)w?={WE1I6vKS&UBn%v7N=zj+2qSmGMy>=lYKG@{aTNmNT7FJz3$? zeQ>I2sWR2HtX73kwHm@4AgV2dIY87}2y=i?^;;5ifKWc7)ygE6{|7;>8YHhm+@lNk z+udfy`hBog|2v=2MK;>l_|SMYaW=w|C0o2{Uq@}TLAB+RY0FH4{hRJ4qQ4|-x7KVk zU#&D^O>1J)Yvx252pOJSf?BEKqDaA2!we_x4&v7my|$oUAzu9qKG`BKNcV#Y#;N_Y zlF6$QnqNFoRBt{!iQ00y+JNWBA60{U9Tej-qmD2i6QV0aCdwwtftade%XMl!b(fa*)7C z{AFc9Nraua%x^MK6efG>7pU+IR#b$ctbP^7G-imQ*+9t-6iV&K93Vti0V`So=2%}C zI>m1yn8LEjV7xNH%*NmsO+3#bCwu(H8}O%!;ZQ*#xmPiejphN$t91wV0Wq;`vM@eW zEowRsdrBKna($M*#nNPVbqWh(lTka~uV=t&o+5lYCF~ znSB2!c%0wZUDJ#Rxk^&dt5k?7zvAC^Y2$Trn`&e(Lhlm>_*MtqysT%k`15|%u;=G{#RhnfS(SeXA6LORqL2Dy{_XVK-{9H5}a274E z`t=7%nst#d{-^ly>pySfRz9DE@xKjiX%;V!{rd0Q;k7XSmrL{a4(^P2*5SNTj`l+i z*PF*Z>~M?oxJMjrB9FsH17D3Ufm8kXA4H*Q1Tu45Yb`cl;{~I)jTeF%F9M~Lt<91+ zTbr5oEWk{Aa>;mcxQnxFG8}idHubYE?*@~g=b5;SkIkwqlZ5lC(oAs9tIDgZ{LZUN ztgGnGtIDiPV$Q2dtxE{btIDmb{LX8YOe0}@H{J=%G{dT+ryD$vZ8faTg@-l4s)XjP>3uJ<@L#pyC+L@f&pPmX6aY zm#P)hF=q5DLGo_P&CS8aQYIK;w`G##lC)T&i>qYAvt4R9*JcbdB<9j(vYfbb8}=n< z;wilhQi;Ov={rMKfi~lagWt`@?N?7ocn&c=R5cNPN|LT)I!u`vzqhqAZP%fs4@6 zBY1P^!uo*>4Vl}Id)oniJc@g=5{|BNA|x4WurT?!=(^mj-_;h(6~t6`IJ!?(A#Q+} z&$MrC5}8Kh)hB1(R{zn+&|<*iIVt3_a0oYsWHHT{GHhgSh*yE`Z4Wr2J{h>ks;T}FY--PskqLDoJ?u3w)`aW8dlp#KFg$G zi|{BMdpnf(9SFxTBY0E0IRDg8btoMBt1!g)J8y(dy_8kR+4U^@`{_NKCBk^QI3oJcsl1bgBEk*681ox)&EoE z-}p42R=v=Fv}XmKG?&mHnlPO_@DvXo3Ez|pH^KyU2%|(s4MZ)%;%^!0mRP!HZkw)} zrGv4sfmChn1ao3&t`^};8=iw?n!*DLjpALmCY||4@?N`f2pPAY1-zIGg5-rDUj-d};g8d#hCcx{4VU~7W!2}EBo~p>$ec@7TojwIf45S_=9$! zmYQ#%rv>$WyV1aV(7+3}K+d+4)2F+dIZHL7eo%uia_VQh>>i~{wAxC3!UuDY-&8!m zsYD4i5ypR4s- zf4Kbf!Y!DLvR1+9D322j&3vFd&^-`2(UdaLQ1DDN2p|(pcYl`AsHQwjK=@}Dx-O&EeEv4SDLNJ*HJ+!KV z8#ahYd$RF`m#Tjsb_m|lW^qCB!(?n}+R(A<~FU0Sq!SAY5foc{EM_Pxly z7xT3$hq8q>MaHTuHNW4q=uJ^{X!H9`OWzc6hc>_86hT+}shrH=1@Bt;x4G7sXI-$q zCtQ5cXe&pTfum>qXy&OFZ945Ohl|&(=`B?b+=nA!#+&qm-qOf{yMZvS9Ae>teISe< zLzHde>Mc(!ZhRAgZp^?`d;;k=tI?Tma}2!c&uP7W!477{z34>g6~ys_90FZa$6gYF zVtSQ8A^sM`8{g)WUJXLWTa=CyVNLmiK*ATwG0>K(edu&`ydAk<;^wSz`$ zFzPSY`brS)b|tDF%K?cwh!qNrTxe-Dv#M}ZMzV8Da)z9dwa)rBzP!6Mni*xFxu&n% zmEq7|%s%o+$t~S=j^#(x@7|KPjP_Bs-w^jv$Fi8l^Ke9Ad@=39PkyXoEVhNF^MvtF zK=p2Y6-35oJX^5$lzeS7Wab1H&y@PfxRm^ifbmlOD0FM%xPC^<b|Ws4%eOhqD8usH0-`BF|!6ezpvXxOnync{Xd-*l*1falX$FlM-KA>x>J|>9_wCP zn^&Uhd_VNVyJC)Nh4+LbYcSAIJ-=fuqj*PIN@TQQC6fZHr&X?`VJ{r+UhaO;V1bdG z4D0JDPJdwwifmW%D-h$xQW;v`&sg!X4mN&GQ2Y$?nz+Z0uaj)u2K(hC&rXUps8ql4 z8zQFI7+l{Fzg6n0Q1qJ$kAF*W6oi%Vwo8-W;WmDKkM*V2CG63~zZZe9%i}ntpJHzT z25HG)AuSs$rrieT6;h0nL>Nws2B%%Rcs{ufc;<`$s9e-;P`tcJ@@OzZiHGDrf$lI( z{3o2OdW^;Y!rhZUSi?b7w>}KL-S=|qL#^*lg5H$l`OhRtv2z*E*gcJB?4rOzy1-yD z9WXeYVmk#t?V`t2vRIWb{wriA?g;AB2sQ2}z;8;Dfj=8^Ksaptjqrr^nATu{my-WJ zv;VZXavbW@dnAi_`3budvI-J@KQmOf8(hgl=HZl$wS~D zlZJ~+_1XH1Wxltsc-e3n4GC6G3X_K+b6ZWel4RB>7RD>g1CQXIWHIk`xz5|d)piNv zLCRq%;-SpN&dJqkbwh2V({b2bZ+$npEUOgmiEmKg%P^!^%n5~nC$)HgGt0Y~)sRKPDz~a0@<9=Hd!Ic-+XxA^g! zfE?iTO=O(U^rLpK+aNwM{JSW2=w)o1(8Z09h-0(~ zx>08P^1VZeOP^`?$tmO6PciGkdyujv1sqN%U0GakyvUVBK35iNAENaHM~g1XX0oO6 z(*q0!DW{H&7KeHy7Z)5edPpwv#q@kQQyEmZ2SBUAAixQguK0dRQY&$=lF@>ZKcujs z$%=+y#*GbEp%E-&>wHR*u|D9N{WJNZt4bR)mq7PGlMO7yH;HJ(a`aXlr;JP#hfb-W z4it(BLryd~7}Vwk35M?|!Z;0OS;b}S{;9{AkE>X#bxP5~aIG9?T!QB++XCJaka zPk`7Mmn1!gt0-Y?iY6=d+mTOc3zfA*J2{aPl{*4C`MLa%DEe+pEP00><;KMQ>whG< zZDB+hj5y61ZoXEnleikME&(C~?6yy22*~D-KX=;db;R|Hn!_98q)l(Y&v62#bZVx$ zz%Sf(>ByQ}4>nsjZojDnjZYHwo}9$ty+G+Rgtw?W?l1zIQbF zt|DI=++s0)gtdP^J<4E^9%-sQ{t?K2>LKC&AXiu< zQ;1(ewxMl4XfS<1Odu8sH!z9EcV>Kr-X-X?PZA9}P1w^KY;^i$yzR5oc^tcV4Fc1~ zXV??QUxq@$pci3QWDG$8;4U;%^gy9h69Ka=nMd~MJ# zC+}-H`wNZFv@`G%@sd1I+5Vx8MO$oBkLS_b8^3CYZ91O1ST;E_zUep|v*8~U%+5=+ zY_md=J#miv$*Un7Cd=>?8!sfWwL#eNXx;SHHhD%fM(k=&X>#?FY|g76Lj`apB24xo zIkzF|KQhFkELm*W#q|Svi5BmT&-LO`GJ(4{?8u|9yM8c{vI{c(&KJLmzG(}SzVc`_ z{yL0eVr0<~l`H)P+l}n)E@zegenJ}$xA-4}fAt|wMa=Cu{`{_dr;&d8IO19-Y3(qq zW5P0Hbs@f+{P4YA+1h-dK6D8Awsgm*AZY21CmIaWlMEKplMQkdz~Hot7PDB_93!8b zuR`{j$o4g&-^$+d86h8rM#ir<5k_uq-eG;-)G)HjM-h7)A$k2k^WN$lZ&<~RHw@yy zAU(_AaJtsuvX)w0O+XlrN*H z`Qb&rr+YH&Nq$o;oslh!tF#mK-*17DPVf(f)Ij=86;$2T9LXfOAo&Twx+L(Qz}^*$ zAy`gOG2DfLkAk#qy6kw*E+MxFJ|^TDM2XQ7q6B>+TJci`9D*$V3+OaieC*vWeuB0U zt@vmzmNpr8Om#m|MU#kDY{|vfX5w~K8BwAY7v*BzxT9ETC((-4xmeHIQ7lHPXvN}O ztXp;z>p;c&D^=Ml?Q`0(R({r@O+Jix(XwO(U%LbqGa5!*&pMtS>pFC@3XH}k?qO7~ z?Jp)zk~8Ff!ohNs*eG}^GG@rWvz>;(L*@i7oD=_a_5DMMP#xb6pHFJ>kVizW%9c`{EHQm6Gg|7?NoMaW9(hZDI;zA04cpEL%aSX3!YVWuX(;i=>OO1DjL>O?WqHN9yjz)0j{63LSFbFjrG zMG|0<3#00Af0!l1PTq>x&3@!nAUTY$EOMFYHtF>9ohSGc1yDuv8uP`%7jE zlU0+$&iy5!`%ySFEARgkF~Zi~S}bNC0l|3`rmbj_QhIi1rN3BiFzZEwW$bYMSp7dt ztc3ZGduRCF5u${75X)V1iXwK;6e-})L_aspbk9sPT+eY{un6_u^Zv_QRqZnO;J%^t zLF`J{IVJJh4Gu8{>#c93am`4P@;H?lUc!(zt#^4-cK&dX`H_lhkQX-Rx4 zTuf>WW61InyJTA%9GNIPOg3T@16lNxFdOZEM`hw!?nv6Er;<8mUbOpnYIB%2)B?G% z7{ni>?YSO;K|P2+fY;8hG}RtkcH}!+mf~~^SRaeht%5;%n?Nyrq2kU2Sx-aKf!|b6 za=3CG!KWC`r`Fa~a)7AWSX1y;BUO0pSCjLH;?v-{*6Syyi+9GhFoL>61|4LNotYNJ zFeo*c_oO2R9;Pded-S)jkiWHWYpDx7cO#b^vIg2)9-bQV={DAKBfnC%Hp9lo=vme@ zU4#tX(~e1mu+(6aN7uN{Bc6o;qyr>qa<&qB8nrQw z0;O09d>dplC3X{Cr(OK|#0zBp>H&i{F|EP+; zka-RBgXYFC`7z&#O)n>HvIa(42KQP(q{S{$Co~b-C3%@){Z3e;sxVaDsDqn0qk)- zy5F<}8I@6Hze|M3Zz^ek<>o9X_RTCF50j_k(oOXBz}dz0f%peReXu<)4tV{0c>T29 zF5esQmOjBfp&@(J8uB^OwYRfLoW8)?k)NV`nvQ>)!9vPH4}USe-JnJqa}1}q7@T(L z;yql$lP^YFcjs+RCJ)**V=t3oAwlKm`2$y6mRoeTsHU;V0#%ZjrV~YlkyEP_R@kUe zIn}xRrUa%2Z1>09c_7v{{eA;QI7$^eM+vnE^Ybr}MdM--zJ$-XY%3CBaw$GtO;Msv zm*FwGT&fF_XDEmhZ%)+73hNF-M|-?Z45Q8>DkbNIpK zaUEx_5n${0&CZF)IL@TBelCsf(MC3{tDUId=x@;?H|Mo-zD9X*(J9`5BUjc;FjhAD z)%VrhxVrxuAPtf!O%3wZfXsCKTSaiggq*Em!p1(0Q`BpF?0cy-13!J4!61Ew!9sec z!D9MygTv`d3{Jb~@t&@^$d?-fwN}LT*QR~9rSVf3wKn-WgN5|928YvE8=Q90;$@De ze2(Vf^#?SlGx|oGU#HS_riRzc+aAkL&E<*KOZvGwB*85~YOU~t++*SjfNyUUl^tfiNp4Q*CU{n|Q< z#yr+e$@RFR>K?^8BM;kT5~%A%VWnhyWZ8C^#;RpKlV6=#SnPB)Bgm@h1_B>!?NcrA z4m?UnaXs(jextxdkiH3`?PmH0c?#*h0>$(`0Y;-Y0<)(2_qNd828jHwjwK^j?rr&h z%F6Di%z@UfK4Y+ue%4?y{j|a1^pggsUG#WwCnNcC^4EC%w4D6EYH5P>YX%GH*9{J* z4;Y+w!7;s9@|MrZ`w-qaL0!Ny(d0WWz5{!=gmF4Md(Gt&CVO61F=J@`XS8ih^5~D@ z9iw$b+Rx$1 z49nZCLuqf`TKFm&@h19+BxL6j{HV~5uJ-U&u?1GupAiaZCGueIbMg2U0JsSmfPQ7 z4qbO?@+`7ice&qG>uH6@&sG^V9HXliy|vki}gX+_P*^{UmcQF5I(hN&Ttj-i3!@_J&IOHkg|5 zcWGHnpJt&Wq*|DzT12YFS*j&-Qo*y@%P4Sr`#>z~klz&f_|MXc?96hNxM!-IO-jt$ zIz4JG&w~$#utT#v)If!X@$*4HnC{wGoP2aTY)we$+fs6Km}o8By+zBn zGro_)Q;^)WJt?O{c6%dZ9Xcu-y5dgDcJuaRGF>!ZHs8+dKYizPf&?8X%FC#&({|`^ z8S`ss2dSj&$8xfLk)S6J0HH7i`f4yxR72#kiw0WCnRdvz>*dA%q!LonO96+Ob)%(v2udS5%rZ4 zl#GZW?PU(2k3`8U_+;nnzn3@Zwa-jcz1q`Ud(!+Zxt!zVawjR%2d#8|`Xhruy47GI z{jtGf`V)i5<)_Y3OlQn7oc_?@v?CDHcO)12;#Wdgb*_2$MO~iqbZar&OsrqQXrQCA zQT^4pY#HXtFIzWrTNJ;FK*J-LXQ`rJ3wCmku>Q_Y0^u!=jaP~2jaN&dJ1)edAzx9F zg<<`Dtt9i@fu}4&v33FSMeD+lwa%rgKcJ{as4eRtc6UtAz*h zwNR|FPxLcbsR#2j;zgH5h8}LA$Ajeg6iH9|#FNY^gN5oL?Dv=2hPj2m0wtm`zdP?(=~o&a5(+B!D$y9Pq~&LU)B;t3!PDIpEoiRwAx5Ut3%Cb zW&Iy(S$u2h1fRR8r{E$>Yq}sKP3Mp@$2!|x&wRW2NSDbf5505 zPvGQHe*OFAdy0H3{QA#2K4Si^ZR*yF3b`;#A%zQQiwx-lhWG%XaAgylls=mP5va5b>L$TN}W(ekn{i zZ#+zhvuA0YqCXZ-?LT+>^YU&~dgCtX=IxnJz}An?5u*rMz6lq;Fe%4wyyZy`O;2 zLc8qv4jS{O56?*wm_L`sdam2I@YPrC@9VFChCQ@Z|A4rE56o;9o4J6mDWEeD6zw$I zW^t5@^phP%5=*)+*EmhJC&zmw7&-2jgEDvNZ4#Z0Vc-9K;G|5ye@@t?7FNi@itR9& zE-oXCyL2DO0$FuR_wKSMacQ3l`%o6fGS*&|Vi_Av3I1YS1ZOJ1Jr~5 z)()c#An8Xa0^RbX0>zY(-xiA>SHTz(6e_4-L4^xixE{Trj`XU;Cmr~d1D|%_GY)*# zfzJt$)KaJn=&$xy-$xwnM+e_5GWCPnUXiOG+4hQT{q(k1r(HC?_$bXozT6o#jcZrrXtD@5{jX>+ zNI9d1zmS$Pnt{P-7flaSil%&y=52nx0q2#4ttHLP__QF>^HBF_mn}lb-=l=QOENmh zc=rjR?(j#JWW9~W&j^d2g)E~M&C}{B>0guHyN^mm=ZNM3N#fl`3&(mH%>eMEG{0UOg;z1`+30RuV?0QQMIy` zjGU&HrTPMa6K-v|%G>1(J@4ek>eX`ahm}Ee{HAi8{_Nx2W9P(9)3Lu-!=5eG|%Ie+pac}&qP{upJq9!+|Gcv)mL{nC)O zCq%lOe1`~?ct3hS2Wsr`o=7_y_68^G!6;=*BI30H);?_LY4H?ssq>+!iEt&|&s*_w zKK`^K#asCd7JRgB7EDocAS`N;<>HT55Ad7vC9EeoKH~Qmwc?8W(T6g&w$i3@Od9Kx zeOV%yjV3=nvyj^@C=Q~-NmfVCRQz^HpDTWbEZ>YR)^qM?3hOzx*I7LL49Db=ex)Uk z{!j{iY>sm+a1iT`VEgbCkLju?L8uoEZ&r9g?+{-oE1JQo66 zf6v3Q2;6J<-zzs!6s8V;3JK5VKgH4iE>uyQJI}|@n3VN}(b?r3N|+r!SFJhAJpQwI z%GhSCc>=<8Y{h>iq{q2S@!#-_@Wh63T#EmWxAEV6Cj3(4AA+a`YNPB2S(Lz{bbLzB zwLcdo<3{{XVOHg1k3VK~=>zJpSGUVFynpC!oVo69MdVG^8bT=Xns};C?ef@RNwXjo zwec@8RQKb5D@jp$ghm!L2fg=5j2~Una#uZ z&>rlLklz$G(!exwV1d_gcD2DG3`eH?nSO6(o*(-}c+ij0KG-~P>+w;~-<>z3`15(m zW;k|kje9=;S2wwcEC=8Gcj#1Qlqzk*aJFA94|6zbSuitm;1MqB#B(Xna~AH7G7y zyV&e2%DZI`dd9@!x}Ko~yqC!lp!X>Oh*&`HQUbo z(_J~p@w~hFw4R4d5(3gk;E8TBE7sJOS+{!)Ys*6UO@&u%k9vIDEjqT7)~h5<#dH_f z&ce@`Y=3517RU~r+p4R6BS_FtBDXC!(%P2GY~p)(`<$xhp*-(CN6xseRha8V+@1n= zysSN)BT<#hPH(+Eul2+=@Y`CWjG)bEZ*`%;AYEjzkaGOi)+iN&(=M9cr`LKyKDVBr zIa-F7QV@+u5}^hc7BLJ(OblA<`2fyBUj%m+&@_BgXm@pQiV*oOgIV}%t)({P_{1z@ ze2yCA5oLpgbj;vzx{JYS7cE9h5ufroK50c6Yk^}%c6`lQ=qkLM2M{=v+Htv?QQw`Y1LqmP8cktHG{)xY;f8|({G$eX7V|{&{2!t$C1(Xl2H?T zL4n2_0eZsPnSQf`i;>E{-F!=S8PIR`;Ew0RRwY@$S4X-r1KOFG0pR45Oh*$rznu08 zxZ9S#AFqOknN$3xu)Y4Y!0hlkMpILcl!UF(A&AT@LMKJ5F)Egv7YDEgMl*wR(J>8J z6Pm_jX&}#jk+(>C2a`W*bYAkKEw}V>3L|OX*ly#looR741Xp0SVVI9B8(z^tgE=69!q0`9gZH)@z~t20mao5J?_(*m=@7q_%fB|&a9 zVD{-2p{7z+BV*|~RZ9DhW`^dX%Q3x!!t9`|^Pm^Rbe3p>oqWyp=@6*)v_C9QA*~1$ z(-8soN)`fQ{`2Hh#@+xjFDJ5)kfiV`|qG&#y-yto~g z7wU0WvII0sFQ$t|EG&hu9qph?PG60dEPp~C#qCUY_uy6*f906o!UN=3l$F?Vl+P?r zW_K>di&=-8Lno$xMVO0sUb2}Bcbxh*xNxZ_91oLA+f=qKb0(yj#hK7D8RYjxIgfVO zE>4f{rrn>1be_TgNZo`#)%hCWw5#*qtHrFgI`z}T3Hpg&^ z)qz2K+NFyRc8x$jcUVJtoJ1a}%Y)%5N{_W9etMk2AU)n-Aw9uhF@1``;q(}T(=K{^ zh$Agu%;-iRQ2W|Kc{W-5T0&*epLYZFgey0bXE^diH3%O2S3P|OguA%H@D^^GghcC} z#M`6-NZr_2YBF)s43)xfjw;>z&_C?=Ecm$y>-GGQL^OG*4RFenUcbA5yPr$1KNLo{ z{x|va{5=75e1X|vOnh$nsZ?})B%^lPW-fj#kXAV zCRau$_RMGPBC;dNV@jQo*mAVuyOCIJPJgx*qyo<7KkGwV3o<6}Le|-s%#A{95j^D1 ztNBs7CjnR(n}P|y$`U0{;1m0Bz)roPgZRq`DLDYVw8y=aLY8B5Xs>B6@_DAUhjGGm zG2M?Dr(`Lgtq{q!+{(vN8|Y_^^vHsk~w9>xJ9S;RRCM!(43=KP9sX1Z!2 zxh%7GsMT=vt2gaby!a1wEOXBn>pKj&Ng^E>!8o*M1l z8h0~Pv4~MYO(-S%wy4As7VnoNuOu2*5|lW(6E_#HpD1!8spy1kvRPR6em6r9ZC^AU zB7TzMI#v(Hsl%Sew<^)jxZg>cXu3qTy8pEm|Ijb03O6M5)8vL(#RfV}>qp zmVj5H!?~|SGlVHY?v?1Nm_boER(tIis5iwh3vSLU(F~HrYcNFGc~_N3FQZFjsXVTT z{1TWbS+vbYhO(#)%if|tU(Yb0YTG^icdDtKt1&9U_7eI?h`artX=Bs9MYxz&1^7Jx zK*Hc1r4zU$H^VTD>*u4K=O{ewO-ywsrPW@jq7EgP9%U^sB!M*rs;`-YMr{Ncqp2X} zk!$YThqRjewjr*$)2g=#aIN|%hc^>%%)oE;Z!xX@HU4uV&AZXs{3JZU%02+}xg%-G z`{J~tV;p&W6fIQ=(Ngyln4aQ0fR;)IrlkstmMW0bQk7&IE!C)4@;O>+2kpkjmfm(n zv#p~l%Q-qKmMrgCR;K+4qD%(>dcu(dc?!At1l&3>7N!T{VvakoghI5!+_iI<@_vLw zN=?>PG&4mRacSHW228oA>`b^$>tV*VDUBJoHKi#_rnHp;?r8<4w8J%}oex`nQvpnA z0<*(d^W2oCR7`0nL8lj49;DPweXR}FrgNU;WFl1(jD&6uJ5>%Dcd^PxlZV+HW=vq* zT_rk>3l6Y9SzK&Y$7m`*hF!tgVHW2(Hp2Kcku*cKd4V2MvqZ3Ic z7*h<88Y7S6TZtN9)o9PYUpRAASlI{DwPY!?jiB4}z-Y{*XuJ+tZBP+L!PSRjoVWMR zAm^F*am0ANO;#NCL99@h$*Ir7G?BW2v{;Xfo5*8VTQ@Dtt)XEuL| zupabe9Q&DET8p6r_;BIx>uh5_uQ~XuoLl{t@lJQd&^44-PwB`2V#@4X{{NW&*a%s? z$wp|bvT;H@dzd0U9GA>#3aGC3oATRB6}{Zva4%JGDus#Kp5rikQ_50858o=uNVHWm zWs5?V9-gDg_qw7`kCsPsHPLI=(d*=}2`=`^cea5rhwl(ns5AK#y;uenHntZ_tywq zCWzkvv-P+rGmO!77(kBT%N|*Lga&oaAq&eGCXmyCl>{QcgNVz}4t)2{jJc(`Q5-Uc z97R^>XR2o}QP18kv>czM9@iT0?|PFrwkO?!{wQvO_~{CrYWyClY(5SQ^RIh+xe^R< zOhtXuiiaRO>w*q??%a3lE8BD5 zQy`qpeHdp=-6^D}f}|-3B-wEE2{Jb?|Cej||UH%gNAn^s>jDwcdsU+JLd_LZxj+3qXrAeQx& zsYWk?-n<@6d)(MRxaMXCnB+25kDWc3VNM0b_;C&qDffARo^auT7y6X^d^~0piQg`5 z@kG(|L1YsPc~{xWcsA@)WnXTUtq_+wz5+yg5q>XRI6m%$ zHnYEyD)=7%zo;p_leN{?%KHpySu>3Cw8Qf8ZQ~5sE&}&VT_&7VK+mT{s6mC=)fwMc zlJlb|mO3>cLHH<^mk7GoPEah5p%S;g7uAYqMhTE&DVS3%l@1lvDVEiYizFdKr)OSF zIJ)>$;#gXF3uWE53_OrZtei-b-ym1FG#TvXVP{#;^;@Q~nb4gk>=-Vm3{5SD%YJ;U z81{`}1?c#LU~YwC442K0UfoWb+jH_;IN^+jDZ1iPN`zo`xMwJpr&aFCWhQ;vHG}MFR)A{laz?^rV+TF{^?eKR!++V!?*g6fnqEzu@dJ#(JmQ zTZww&YeX_?v65^sZ$I~P;|;gb{B{1iQk~E9qy;fa9*Wqs@As0`84xAy9vy zJVs&<`iveb5V}c_#LmKl& z(OU|A)**~(F3jD^UKa7Y3GptBN4mxm58{~kS5b$Lr!A+ZW!n^a?y~Tttnz7I&DVbO zBOX&qhv0Q(;mMBtoPGQj@`F5MT$HY3R?}W8njerinG6)p!v;)%&j^PwN1~~1g#3wij z$(LRCw0d|td2Y$&$q+-LEKf!kJVDA}04$^oJHTSf001OU1`Qm;DZ>+R+9lSnY^yTl zYh^`Vq3u`PN?wI{oOZ#*!fu`lT#AzhHILRKiJ1Jj`czt8o>!PG6nm=!rCZ-gN9pA> zQMpozZ$Q3&5SHhK^GfkDHAsF{-3S_~iO=(tDs*alIkm3I5N6EfP^prG|D3b#iJVBZoETq#0hf{b_v0dEwL|1J2bW+2;86dih5pB9R zT9S`K`C5)7g5*E*$QaUjomZyY~tW60+nWKaWO{-eHMzc_3h0ck*2lyh&>Nl^YY!vZ& z6_Mv{(Y9{D={Gm>9nk?;J%aY=t2B{7+iVKBCrr>bPe#PjHibpo6v%0tO0tc%X;duv z9Bs3MZp|UBb?SA`ZR?xYK`v*PEP3^!=iOoDnzbI_;WfH{UG?yVZ`;^3v zNAa6l-zQ?NyPF#0AO*iCYI&EMFD8De$&`+m#IqT08@n=sq|e6dPuq7p7PazWQ(0n; zM~N&&(g`+0PLPSIncK=(=UE>`#?NF{e>^hwb>TTmp92HZ3^_dVe^=$w5g&ye6tu_1 z&JL;^OHR+W72MxrwJCFSIJ?-2z^M}_`2RqpnR6LciKd_VK1)FQTvbL>Uw0W&`tIID zW0~OU(}g`-wOq|2%HuTDvYqDQr_^fmU5(N|cc+Wrzv)#RBfVBTTrbYS`Ce#&0SB zE3UxoFl!dKOjIi9+ytH8nG?tTW;;u}uDqVvV0JN!vjO;5kl!@^e?ZTD&>4Cy-ytiE z%NIlM&5(13-t9um@ht>O2k2td*N(`oAMi#P^}FFQ~c)3iNp3p^A$ke9pXEp z>F!a@k*c_g;N~H`M+ypn#6Zre*um8an#>V+gMiii#s)=89BL8f|C90 z48}S4FhjnIZr&#P^A%l6XN@l7L^!iABLkDQiD}{XVtOlL($#X4(%bMnh)%&Rg;`hF zA=kpJL-E66HqtNNVQ6buZ@*j1P~iQIPQ97lqkZ4jpKL2{0QVmLkKxvM&$#|lswt_xTIISWi7F}JtM{xRXz5^VKJ538Jj>QR!em5TSl(j5)e8-mB60RWi{8^|_bech0ew$0cn3gd zVfH~8e>-kl9;NTb#bW_WM4-Y8BzWH-Py8Z{eec0b3thQcXPp^Sv@voMq9G^&?l${|%7x^>vv3(;%j{iL^3LAkvU6DgZF?-wa2Q#Nm&CYi3Z zk|;o%H-fpn5EE+X_Cgl!DDOX$cP1G%Jf5k50J|JlnaAWKaXP#$U{LB6XXZGx1hLNPsT?%adAyV(BcwRvyDYQ<%wci8q?g966 z{fgim%VE)2`}xC^sOrTx z(2F02y5IZ|h+Hq`fe8>iE5VmBKtMnIqF9f2$srz4i$5;l-e^QEUZV!K&>ENmP>Tg} zOAe)KEjh~B*55}(!m(0ryoAP_VCmSC=}8!ts`>nnbstIgxIDjJ`pu+2k|8GG*98G1}fnu_H+WU_YI>PI|bpKAs? z3e8Teb>83C5@>&9wT}PexLbc}57&Uh0OpP1&h(fM!d7-R&Dl^7X1u@C+QTOaLTaA_ zu-@E@TGu`nhmJlEhF1Rt2firaOi%xTlLmt2>C?DmZ2XJ@o1f+T*lL0^HY!)C311d; zPf#Lvt|wKu-mC1J3Xt3da|5^1{OX33{z^pk=bn4$D$Sx&iLin zQlNfZCah8CmYUZ4Z~QB6qh=hR$;)ABWcdO|D*inqpf6BCIWo$2U*iS#XBn`%f zh@+LtB$uClxhAab4=+>Ohb>iD1uh(CA`3770$VL^T})f)wzn?rvC5U~Bfy>2?X{)u zjMx__Sn}T_$U2mEo2^6X#(u6txr&X_uaHGnu@To!Rk2?&x(d*3eZgFZvWkt|}#>MC1qP8USw5Q(e5WD6Sdty5a|BP66)@4_Ls@UWt1_he6Drd!>{N{zb(r;{M zjoq3fH~Ty5itR!><9TK;T1nZ^pS-X0A5-8Qd(mIjpy_X88J=~;r^r30g9hH~3A@Ys z;{ycol+v+&^J}>L=GXbgcT(j}@H%8Bx$9v(6T7U4DEPQlB}= zZwkvszd%mnN&=A~h|P?cWzC3K>g+JBT>$K0vr)+DoF(t->%Ea|d{K_M@ulQ_m-1jd zVZQk$L5wfo1~9%HZ#VW)ru(P{sX3MSE*LNsZq% zfMJMT%IXYVKv=q=o@k(Cn_IRiC4$V|km;k%Gxa0K@9?EDf7d+Uv+wu$+B1y07ihz> zWoOwi9>0e4?p|OA&4Y7bJNE)#`R4XMj+hJL*I6(&z0ms(GQf(241P!uGWZby8Jx^R zE4cjT4By8q2$7H=ekN#dDoPNj5!IP%{HCxHgkVk(N|Y0X%k{?~5yVdbe)Fe%<6i2b zEdtBPGC%~cZ;POVF2`?hWo)fIICI&$2l^o7f|wCphB}=ITh7>m1qK=XoFKJpZO{A? zck*ny=gMCoqs(u10AQ+O^xcjG>Yr@w{(Bf%+t^H;cZGD(=^jf7Q_ zH}SR2tvAb|ng1;~vRy8*p_56!5p?epqTHUX@yRX16(HqSaCR6boxM}(p!8OeEb3T{ zW%xGp_7{6whkAsSR%xN8RWjDdQ|@Wq?lKN6XVl1!fIH|?CSZ5A`!w&ipSD!Kk~drI zYRUQ+P;JXvXD9}c)!ioR-x3tD1H#YrokPiVbT57*qvOQ0?6nk|9p4V?dRK);pl^`8 z1B4y&d#4=G63xXx^ib+gST1+jqy4A1mIL=OIbXSH$ljk@M(4A*aFg zLP%3EVK9l}bH(sG>JMxFyIP4Xay)8l1dAr8`{mU8NwtxK8HQd)YGv>~Ww3{GYtdaQ zx_i-_CeGmZ!0e7n`bU+#kp2OXFY9ZptP0c{Od4qYrs6c#vHWt$-w!hVfIrB#U1en>HziqK#aK~H+k=Lg3>f;0W7f(q%!gkJAY%Nu`OxTa8zPYBOT>*-$| zkAG?N*yZg`KCiQU6sUY`65u3*Vrf$Nq{NWj{SRynaZf%zT*PNnmiUv(#m=l~ow4IM zpUUEN**nNP$ah{R-}P2OEv_`HwB#!N)U_e;D4x$J?qm?0JP|M!3fZ_^EL|ZPtKgp| zH3Gu^EFyY$PUU8fq#Y_uG(HQQq}+ohMO4oNf1ALh|0ZNOLo%=)2&P^v|@RYhN z_!UKafX~FX$gc`1ntSblCIxEIv;w*8zNREL4s^=WiZ-VXh0K*jDuwF( z8)VIeW8;)gk1dM^<)Nk1Rvscw#3FZZp4Px=Z;-_2L&Bea1ivP}XtKEVtt4QW?&3rZ zlgdVxKu-{+sW{|t0SQ*#3?q&Tm~W8|@NEaa1K>FhQYYWV=>`~WvT68`zGhw2nXAMR z<|?1a{`AA5kGbkXGT6G>vQz-(DuJA;rc}^Tr&{q*F=9`db-*h>O-x+5)N!T9t&b`3^!Ab?EI>U zoc>z$)1KJq(=5UW!+Q&<`sclBU38qSR?zTaiYT1=thFKT}p#jf7xeWhiKQGLfvm&xMrEf zb4^l#EJcjOPMf1j?4ne%#Jq?C?lFq0&C8t^mDR`NDQZ>`TPfM9i!tOl|LpJ`j3uq6 z>g3@1oRuW|X%CD!b}z@6aCPtGjnTf-RJRLl8FN~{rKq;b($r(P*{-cFq*<};W`UA^r)@iTBvfUHvSJ zmka!<#cn6mB}2Ve>V|Lk@*?&}4c@;HaMv1tsYs^l2k?(glLn(;hC~*e_6FlrEgXG# zd>myRJdZ8DTUDdS7L80v3*GE7vR@Oy9z@%-x*R1MpFKsUyRN^%qUKa`$A~{um2wVxW~r@zjh*S=g6Phk^;2Gx;6t>_h=@h8mHkH7^lxPl2HTT!Q?yKPW7-zd&waR+4P?XANnS zqfxQsty$4bH63(ojA^aWU-;_w8hr$EbLP5_Q|@tl+!%Ow!&S1E#!B|m zSjpZN^P6MfbEETi%8o0m$Whka1>AFDl=afAtin=Ofm~UYWSg=Y6-z#+tR3{WWzD@y zwJYRuWex1?FvrJfM@tE!tjhqD6)V}ExJpe1G3KIi+_~+8os>@`DBoTJ?nyGrcUe|G zVJV+Lu6#z2|;!% z0K9SZ0R01Hj*-#x8@DszrbrHo?yE?t%fca63gL2ah*d%;vr_zia-#?L7n;9kph%wt z($N9)2Vuk|?myyQ*{=*O7h}G5Oe;$zv-hy{&R#WjWl~#-RT~tBM4x>%6n8VtRe~eJKg>*<)ith9f5@)68 z_T#Hm3YGwnRsdT;(}J_ZFP~G2?)aZj8n5o+ZI^5EFGAdp6}uvdX{$23t7r8wvzOa{ zFdl|n!y0n!!sN*|#Op1Rx|>+W~NloQ8UBnd<4F-HL|T=q%<2O7I#Q|ff}JPavlncyKm^?`_o5~ z%DPVGyp>*LPv13Oh|9=jdrm5qJKv=}C))F2sG$k62xrcu4_N+>LeI%6eh6kCi*$A_ z(nxzV3s_HMaW?*+0slHHXPX%&v>_9`6B-8nVaU5Z=Iuf|ds?(3HHHukJt&_pc$>EN#C{{k1)zG_EW3E#s1G2B@@T8+GNdte1`g7EiRJ359S z+RdF%K&GLBc<&fp0kYtyCXFj44)Pf?tM3DF)vC4QI^+iAsFIkX$_ z2##z3Q$`xVP84)6;4y&FGOAm#1k%@J6R*&B3Ku00rg>&DnJc6io?HwCh7s1CXubIDZw zuchDp@u9YUcPzXGaZ%ySm2_%%b>AEyPHrL0A>H~=N_szXXCV;Me$ty%IIbApY%oY~ zF*uw)-{7Kz72 z`h8aKibB1g2B6;cDE3+WY}0URNlTr#ACeNJ)6+$;lAZym9?OFh@;2qWi}hkIcG(`6 zaPQNcsz@V7ke_nOD7#eb^DD9QICA{3`5RdxigHE5RO;L_F7j?!N;7db(t{|+``hJU zQNlYeDrx5(7b{0p9jw@U6_RIKFyQC;1pBVH@7a9w*8_Ai=DF%48iSvwKH|1u zMNm7BOa=523}b}*@ikQc%+)-3fL}Y0g1NIgN(32NN3^W3#2~Co!wmf$HoEQlaQj78 z%f+a-t^wGKtQ~aj{J#w@^SpcC+ivsXDm&-T^TgOwWu&+eq_$mx_?={4tnAmVU)YNy zHOqCy%D!RTBd7b>y_oa#bST-acSn}P$WnKBMI(QQSAN~$HQFZo(4!N3A2iutL?~y1 z?cM}$94M`>wx-OW2>(*Pym~r)nfZisw_S@{KL@22Ua|btW{>eGd-U~0z}@pjU%yrrh0Rx3^mT#RVN@nJkSPg77C=N#0Vrkja{G!u zD(nhHD7t6kF>5V@B}OTGMAx#je5f*;SZop6L1#0H8>33z&wkskuZy9Y8~a1AuPwu? z2ttO>l}IY-b@=>dov$RohTCfux>k z={EA!2FCSBYU@3!v8DnLmOySaAR4&UN)pxATm9?0atOfJ3Hg^6W+TH}N z>T2s7U;DSuIUGh0gE*mbnCC$TClnA=P;f%P0ZURV%gU+Jw1QAlujUwOT7gqqmUcDE zp_EX}veLB7w31NMveLAhmDan~+MB~MyZ5=z|NX!CIbZj8t+m&lhu@4(*r8Zu=cc;8 zMSDwKzx8EvUH|wm$Mad`=+CLH)%ls7+?Q#$fjOp42(DuTU3hbWkH;Z*iFg+K^ndEB z>iiSAz&iW~{in7qSci|$s2*(0ASqTL{pVDHyvMouz3A+Pqu+G?qFMYO&R@{($Z>wA zS3$pCf_K*HTP_bJ$0fuiB_t)%&0}B&JeY^ia03zi7(g~I<`eNYr{IFAlgHnG7jCw2 zkLD+!tQE=%3m`d0eNQg9Z((jW>avmN4MJV72@l*s#`uSOa#4KyYIoNTNPZJZ^yEKw zWq$r;Gyac7haGspcLjg9A;&IH$BN)4-;4EU+blQgn&+OtrxN{)E3p5O&S? zOm)L0{b3Ia{GQqq)BV;U`N>d{?}>!oZct<WE0(w@RNZv(|pCp=-C2qq>}wS&d=|G zv#|EI_afYf^VFuu|QP%Zu|!LL!BsO-lVIVTr^{_yGCiD)2U<`YK z|EPiaVGtNd+E4r4-!BX{6p&3QmOTt!3!v~sKhIPzuni;2e|98EF}AO}L8T6ZmT4q; zCWca6%JnvOB<0_Nsu}J>$I~IEN(Z z>7>m|VtM@TVhe2I@^&y$-wwqRML|kNOm-A(E}@o+#dh(6{6ex%=JuN0liKTAFy-gl zG|EX7)`<_qV5u$84ST5tdUT_3G~-8I$#M$zw2^}PC-zCM&-Wv!MNAzDABZ8GnM_!k zL1=ODOl@ZX__Us2pMJ`SQyG%hZ14Fn{5rgnm;F680IEUJ@vBWLACL2(DF z`FGO^7jbXjiKTOc{W&z6ynF1;ZVO?#RzeoG*qPjS2V_U;+q7Fs4z>Nn887o2HN+J!j!Xa-;FPROejZb6@qIMa8y zgT0KSi5RUfHps#8O$-+gWRJ1Vz}1Y{%&2`B57%mD3pK-gFijl(x?`C{&DurP_36~D^vit#+- zL&F-t6#}u8HmJ=E4GY5mV^}vKkaRYPXWg@Aisy^()g{Y+$mEynu*rm^MJ zaPks}Ve;}jrcP`T=QF4C`OpSr&#J zCzb)%IQ1^+WSI+Yg7R{b*Ud`1o;T?u5N4;zGxI3IcqSwCS#odwftz#UB<>qhh<%L#Zl5XHMI zVUN!^+~wRUYOp;wWj=~~ugNf;Q}5dA(XOYF-NUK(KsFA)?=*#VJx0t5xr%HWGoPYa zA=lwSJi|`8ULG%t zwRpT`3U$G$m>1&}ymy6ax1>Mi>{T!ul+S_LvqG}P7H~00*SQbr{s}E`+OWZ|BNek5 z)M9(E1{?4kpf6kI=92DBXwS@x*)FiNWp0-*5*n}{$1ocfKx_{rvSs_+ZvDqWJ#;f_ zux(qoEXV<5Y0UbiJF_7s#d@$VI7zXdoa^5^w9H;-)I+*KZJU$PGW#{-1Qf8PZDdzG z;r%7P>5o$QEK{*jcmmf3Zw2BJ7V2&{B$jA2PF>^RD=1~%pP}@o@QZMt!!i|qgh_0f zg){9qxCB#-CotapKE!^88O$C`Q)~gp`v&iA%M{n)DUSDS0bS*}0jroDWd@>#*=c4{ ztY=m?ge*+)IGPV7+eis%W#V6ltY zH(~Vcvq+tLe>hi=7%(mc!I~9hAOUy1HTMk9yID3niUG_Xx0CLB zF_hWsZ26-oVz!9cWigCdk4&<>B1SN4%U*sKqnZ7JhkXt3i@1|he-3MR9Q-OKaL(|d z2h?2`4=@|c<&(xFr+UFh^jP;TZV$$Rm+>&O2ri$$F^kz=W&uVevp2W~gN!*&EW((_ zZ7X_EdU3{l)>UEZ<8WSB#Ozo0l4>krhAOm7HeiwO-}QGl+2JXcTxi`3 z*Q4Z-?xw+Imov(O2ABOAPvJGg2;K7u|HvczN8;Q~sjw`$0&Ug}Aj!LJ1O4rg-ug-O z|7duSL70lzu~j$3fI&~8d_b=%#A&%Jg9QBAY8~P!L_4T-d-%VClG_mNu(ItnFFTZT z-ac+k{@-Z59ko4+cA<8Do4trKU_aulO|96VcBL3Xc-INGh+x{Aq2$R|oKFR3Q zn!+xv2*2uP4Yy`i*3kqce^Ba0Y@2E`ICGVhV2mD)+g8wySWD5WIwBu{DTuA-n(t^ z;Icht!r?B2w^<20xe{JM6mSl;cs>cW0%oIDK!29kvwSqm$Fcm6M2b}sOZhy|kNVz? z-h|Kfr_?8>lYB|P_88tA7>bzJF9Gqnz!by}26hWhg-?9aF|1mDT}U>DsVzu80KaWpQbVJtgT zcl5+qy@pdbkTJRsX_Hfzpyd&c`wincL_4g&`f1Wu47lbsxa=Or8y!im@=2-Np+m<7 z=y@%U7dyOJ@(hMm-ynG+91d88xSR25L_2)dvIa4d$7v;FDvl#Nlysq-U-7F!`+cnl zJ^cw^3OSV?5(p#;+Lf zU@T|MXKam_2>EU9!O@Y6EmBl=C(dJb7}k3|=D#Xo3*wW>yAYT6{>aM$2@%&2$E9CE zj0y<1VQ(MO&A{H?5oZ9{*|$Jgz^gOOnJ3K)aJG5StTf^>T(@F)j`0QJHH(L> zX+F$qI}5`eZ75wzMQ|$0Gx;1M$=iNR>p_>TEe4k@NTZ%mkV0s9)2zEbbT5vGvO>az z9DWed4ij2eU`@WxJ%oCf9Ts$^IoSngemndF>&*_wuuqbNW@DGW`-7Xy_yLBmVk|rx z5%(;X?$gkZF}$Jh=rv7-RXR-gRPP&BQ=lak{Uy)CJ zH46Kx0FUgSvH$;)^|O;t%0pJ*pNKpAnnLglPz$Q(^*G+CCS5~RO$sOJOn z1^$Q+;iy-$ZX*1Y&@RLd^&JBd;|oGjyN<`&N}T1I^G|8*?3=DrB>&E(i^9~Ka*~dz zZ?;fcAGib}?y}Ozonypf_?o3FBGn1C;9iu^Z9(Bq{j<roNdD&$(;zzn>s7|g~ zPGTvttS@3Kyo{}5hq)QAq5Le*QCZwSm-M1`yd!=)$}jeyas2`JUT>a7Y5uf>CyuYb z=62WLl>KHK)pMHbhiZ5irc!I6)!byIoGh^h;yppPyQUff+}-Zdb#8}FgZ5&cZ|*Jo zF~yyIKR~25vcSsp=~#!a#$bBvE~skhHjGSG|qb91h6q+7ni zoV=)GdDw0)g|bw!np^p1o1J~npl4^Fa}3pj7yh;dm8FX1JiZDnG>?T@sT42hcJ#nm z=ziB9Fo)Ed&FRwUIErf))d{8Eu_MhJJ-X1ic+fH(YnW=_ud%47{aw3ULCYEojhdF$ zYZz{{8leJ)xKishx65C>Q68c~lH8j{&CTQ2CDa0s(T)gnXv1(;AdUV0xYAi5yhlrv z9Pdu4%rQD(xM@6wIbx}N{(ap49816*mN@pDglNv`9*VnP`?A({uw}i8Nc|b-Lwj$O zH-$fUlDBQsBp;r666Z{1Gd#1YtzrE6jU>6W?q^86!y|T zc!l~%x65DKvB{Fw0%ywyT?TR~PU0%_kb7~cKiI^UV1IZSvAM>aSH=Zx)yk;mK<*pZ zrnHtd+f&|l_ASBOs&rL~H@97L{&)5*Ma%!m=Fb1Z=H8oZ>@bP>)b<>WwVWdQO1K_Ksx(|QWSe@&~ow=c(7cAUx8vB|A#5XG%Qo0DcA8kH{Byr>=5b34B5l!}_! zYEkmnIjuP@oXzy{&d#Fx(4w-b;e?$K1?=HDu&I8ir1NlAZ))G2eP6>CSLNM=tAGW@ z@NA!8p}2F5_nmS=ajz86+VsDPb&PANIhB3r0e4@PFWA3xZ~v?1l>(Zt{?1bMQhz;; zD4!>T2LttXB+Ou6OZOZhxx(}DjqzV6Jqt# zFITHa_K;`^p+Qu@dZ3*7LnqCs4E~V8tP)E!UHZdbW=mmfcw$&9hzO>5i{XnrFH>u{ zQ?b_Pvx>ahz%*v{@TskHSR1I;tSF*)SO6Snrg~jR_)0PBV7SJN%04D66msw^6vd;`hQWQBQE9`W zj2WdcJ}exMJjk-rdQW(i5do_-^N*bZ5wOu=`HYN!JF+BioyLDFA5GjECuQ= zI@lDvM&^oVh*gOm35$kS4mK++2Kp)ndBa-bdGS)sezYwPOMr6ChNG?%tki5^`^90& zuuHSYN4CVTrhTH>lDL+5b?!&aHpJPW8@SQ~3s4F7pqK6ttl5yF#bG@lTeF}0tO!eo z)67&|r-L&zk1KRT1*zrjB3}x%v8G$=J}ED`DUGG7aY?Lo%x36?l5O|D6F?i z0P4+Sy}k;=OCbDLZ}!UjF03C!ab8pp=?_VoQ4h(3?wV1r%Y!UtYM#hz^5W^$cVmlY z7TB3An^K@$=RtptR|ReQ{uGu6g-$*P!YIwCe-4B@HKWuA!TrosdV}C0W@^qF1drXM zTkK#)0NsN`e>7*Uvkiu7)~VJkfDOzV#Ja4bPykz$PVCF-A_`y+Gn&uL;RSF&$D^DL zg~OUr&I;i(W|h`U?c0PG!fDM+9fFZv(5!WbHsM8ZS+h9Q6~S+cal03T5l#85w0_@z zhA77O+$z?i<78w$ilLY=yCJ#ri+hJW>*l=@wYAiFngvJ<-}CCsl`H#6morI~fJO%``M;tjCb;BMHdQgE&8 z*Ef88lg?ZnE})6+H;?R@@6hcxr}Xu)-m5M5oAY{xSn(+}{@ZWf-fw95{qPR^tb&JQ zZ%6jNE(7(*iEy5o>LC+#ym}rh4(3VYXd+xvUaUXm-xod+u4ymSwv#}_P*k-BOa@oY zD22(8z)Ynu8M-i|8FO0rWXMs>dLVVOmnPlsw|OJO=*fu0VhnN@J#odG-O zRtU`5tKR4FF2GvN>b!&8X25%z4MyEe_*k<^sGA8VHS6GW9=~?hs9B0nklUkhQL}Rx z?=iTlnSr{;;D%-%17?WF!JME{4m~gJQ zw6H-LjAB-0eWyixk8&8R*~u1l;pH%a*qnLG6(bwT~;XTdf zhD8~3;jCs=VdqizgJuK5&%-?URWsVx%>&Vi@={^_CDjO+2X4$Nt;f@U2>%E8Xy%6T z{sC<@Yabru_74bF3@(>k4WAF)HG@&}wG-o`jYo94swjHQec7 z*%51CqJs^HSP#=2Y(&HcM+&K4cSgMAV4tN;irC~}4<$Yl(ezASJ?CXJl(83;m(4JT z8I9tyh|RE=**RSQo{ZQ6YnZ9EaSOc8tP=jPEkWI32Wtth!B?6Mj>`|<3O{I;gLVBn z+|X1*I|!RKJBa)8gRtAd-iUY~Zs)t(D29EZc2ZAttz;y76GP6JvEUE?=~9fvf{+TpBm97ZxzW9&HG$4rf}Wv)#jj z-M@fn%`C&ejQA3gH1i!E?EWRBX*Q+fnTW3-TeF!RzeSd>*^uHdBThr1X5)&3-A_|S z@UPzdqvz#_21SsK?hKKQa2s2yx#uk0sp4Vnx<#IahqRX^eO?Us1|HMwNvyMPppsb? zY)RgD&ZmWEC7PnbP)q7^d08_EXya2-7sH9ndNAGHlT7 zw!rR@SKtgYYWKd8zkn@+ywt;MMFS###XG!+ErtN^!pPrXD6=X&0w0cSzJra9{2k6X z*!ajBP?Cw!FfVx_QzJpN?$yM~BTeF(gDr}571#IxjVx;-TZn+(O_tjt{lx=)kcq|c zQ{2JG4q}~V(*r(<3=(f?HWgWj_(Zcd5ho+V#5HDBur0qaGD^7hC7+8SD55YjMzkV^ zK6fTvK$guqn%RGdj1^-Y?B~chv4~kY>dcTJ2JyjSC4}Kzmnc4FruH_8;)G_jw@DPI znW@>WlennjVeQJOP9h_h@=^(%dU`~qh|!uIPo6G2i^Kg$R|P)#K2cr7q5i}cL&5Mi zQC-DV&3eamjOr#xL;b8OC?u-8=#xiGjoTigz`>%UdWf0K>fuyer>LG{t!Cpqdq(vV z)_nE?=i>6B`iNngP4z5}>L<1`YY=y13IoJv%*tUya7ff3F?ImOD~C2BBx-2y8$`--ZPIYT3x1-$qRr z10C#_s7J*EnqBJW8eJ~tXcpSDZFGe=q*)%aN^xB?d;ierxnjZ)^0^p7`o>59LrhnU zSJC-m4l^ok*Xa4;x?)_Sg~GLf;#I=&j(wvSiU7rU_q$MpXx+;m`KTMMSysTX=*41{ zX3u$*MlThYG@Dj5F}g~$9!fr|;G>X7qL+(6&DsW(N3Rgc4)#>^O0l7kESJLe5v!wL zaP$IdziJ1g_FFCPE+Wfiklf*W?PDPN3R!qnW_G=LA=Y1+Ne5egE*}j`Fu$v z6_b~GK{MDUk)qk&umO>;h|bKEmsg!q9}wBhsHHbMbkrxdh;*lTTSN{s)w8yUdsPbD zU$%&unvs{+#JkMO!6o_q=zofUVU)9SY?V)m>315bviQX zJruKYSXTT{%(o(NEa}Q&Z3n#DKn&BYRSL0jn$0OLi@7MunAPJEY8Uq(#6rcaAKA{s zC9z7g!<~q2)NE*Cg>gx2*KABTVs)BL>~_rck~pH7Z}ALqS$w5gaIqQh7QM=>9FlN3 z_(>#;Q)PG(kCJ~9J(%r-YCP8dNt7@vhoA83(G@Y48P&v`m@DED9gjx%&tkS_)I)v| z%XK`O^?wytnJvaS%iEh8TmAfL(Ejq!uL7c zMPAAw%d0xZ#h9g8W7_5zyg&AC(vi>I_+_I6W~$eD8yT8Wu6>O>X3A$vV*|4~`GnVd z_#MkDnthW0NlaVA#HR@Ni64f2853ZvVpa|}hJ6#$-ni~yS7HJUk9$g%mRJ`r>4EHEwmS#8l!t(ZWVh0&xnN`8S z_=T}UjKImHqtxGs7;5xW%$kR1+KP>#iUEW!k1aM z9MKY4iz)0A7Dp@&D=~UH*o(2Z8N)O?)#;7cQscB{OA7^zF^s7yUi*+n*D;1aGj*P5 ztdXa6YkX2|V~t0d;SN5pE*9^P)@&cLJB@ENJ0JdD>|KW6gXB~7>+!}cW>s*$^U>Jx z#sUZXGWK4h%E5k$z0auD?7EL7?g3-BgZaiyG(K~%wsDh;s}2?(H`%Z~MCnz5i#;xG ziqTrL>ptmmQ;qfxHYDyLBZ%2z@bE2(n`ZQ6M(t1X8k<20k=@JEgN zG)u!X$d4KiYBmqgBtB|9%8b@A8$4=MGOMzFW1AHBn6W^!=i-Ph(=4k!v6Y(5W!-Ac z9vVryjhf{a5!=E{9cw>kyva<}?qf#a!>a6EJs(EPsSY+LuG}CE?ZhKXR>aM6Vw>ae zWdIJ{+i{h~0ggvyplj~mDKFMn(>{xvWBkOd5|;S1MBN{n?JW8-Zk`c5joehiwt{cs z78>0&Ybb6Bi;X^-O%4AcZmIF0W*yOTxiMd}XFB~7_pI@XW*=a@=Zqbiz1Hc^xEGAi zHS2_4RvWIgrj>pVzH!*Y2$fWpY*1JV!e62$lg}QwXHUxDC9IQNUX#9H)Hq3KW z{2`;|46YZ<=NNphCxlr&(7ga38OaWv8IBl(m^FwOamD-C81@*&YY=yZ^g>pm*)LxA z;8Tz9E9QE5@Dw;^9M!rn2HYF}iP4~0Sl(>-)c8@eK;QXr+`!ZR>@$4eN;qlQG@FQ) zr;HAoO+d>pj0Da6JgcF>Si+1(W14I*HZ!ZY(pAed#v7W^Rm(HR9>w@d_8H@VBi7{yx;a``IOHm_r)1 zi0#pA-aumYn%z@K>;uhS?@H{LX8i++oz(0hW?yTzD}i(uG+W8+l4h6MlkOMIT6ZA! zhh`@-h?$?DTB@>sTSUx5vnAb#`7u)?=YlbbS*7)IQkdTbW4dD4wr4CCj5*2@W_6z! z|E;l%Sv}B>^IK!3X0)sP)>y3>?FYX%HflyY)gO&5n$a%ylJSOOyjQ$pysa7S6|Wfk zHKX0{72}X*v~#>-9Mz0=j#rG&HKU#56{CR}^~f`ptA<|%mAxMCFPIeZv$0$=I+Op4 zu}?EP=YP#;HA`92)t29k5N70Mm*qDj(@A&3$kL2_-Y`aKMn3;ECTK=JLGEEjULFZE zOq#)_CfYRF!bS*1b_Rx&3WrfOO z&FETIxSXUJUCWA;^E9KYS5b0}W_0B|TJC062_AtbBiCp~*Ct}* z7G{e9+Be3>$ijtWSq?+}F2={oiOkgaiv-fPT~1uy z>?K`3#*E^*C1l9gn5nkyCEwPJ+P0T`Uo&dkUh=4B)V953qh{2$S@Jv0sBN?4RmHdu zW=qQoN?o;dwhYvaTDp(yrWv(#jvS;JwREl=%}kXqSI*Kp8acUgw`SCP`pfg0k+N$!W@~nj@V*&q*qPC0-454wb4`3V?F8A8t{}1(2Qz+ zp*;L@vu>gMk{KOOZ%9}quQIFT{<1_~XQqyQmq^}83ZrWxs$$_=kI z>z2wlH6z_JIdf~XZke2~8R?#uCEJ>HPs@9lsh(9OA7Z9@R+W5=Sp|+jpM)y8NXH{D z&&bhlHhXzSPSlKa%jLwK&AR2XOf%B0knnc1ZiTdIM!IL^VJF?Q^0bp~r98H$Io?Wn zMl*`HN`AJtS+`1_*Nk+}$?SKUb&n$av=Bdv9m9@XGlwDe|n4v%`y!)h6<*>v2& zua*N9bDcV53bGPr4X!lLua@JrC9TD)sMrgV(fFX9L-Gm+$?8lMn1R54ayRIPJ!3t z8D`4oYtp~I$!AiVf655O*ylDmgqiZWP2Qy$`Fvf@RF>>>yWGM|`P?qgC>@slOu`#7 z@BpV^wRHVHVTX)hRt_I_5%{LN5@u?=?~scQlBF8&J7l$H)X#Rxv_s9how6S@HL7;W zB4%n-?UJ`KtAJ8*C1IB=*K8ZIx8$o1OEc_|$C#Q$`Z|9 z#UtoC`MzSV1%urZ_sOGLM@P{6WrJpP1YIwG)Qpax4@kVdf>WR)==Y^fGdhAkBs*wE zN6;V01kLCO`iNYn8P&uQIrDIHK99)xnvw2fdH0cK-N$m8W~4hRb3Sg?9hJj0Bi%8H zw`Jg;s`+Cwm06{AAD##MME2B-?yLMn_R;KiW&;$%miA5jM2>SX0iVhHm{q`sq8iyU zW~#0~le<4{PVX~$NHfaI328dftUDq7G$Y;TvgGq--RJTiW|h{Hxb~lvlQsJh*Zz}o zhGujp-YHq38QqC@O3r7t54L!ANc=(`*Nl#czLIB^C6-9QY5Bc_nUT4iRH@Vcvq5@j zMsrVtd_ytbV>ZY=T1V#+8f3lJ(cIG@k7*t4F~63rPAQ)>yEV#=%v8TVBcqwAetkwJ zF{^+_MO5M$IY`H&dO0fxebHPmXXS0oD4rS4$@`eq107F)BWG#W)$_YH-^x|Y)K1_B zd5D>6qaP){DhK~mpZHPQG^6w`$+XkWx=S)oGtym_s~Vbhm*pnSNcWSpHa6>ilC3o( z-4%J>Nk{L$6!2zjGbRO7I5LjVtFsNCqfA9KAfk}MUY$w4qBr53PJ}bqGG!!%6?TZH z@O%067S4|lZw?ge5n4wY~_Ecla zUbV<8y!w#6bNd=_IHOsj=7Hz?Q%x?#)kneb8}e2vsmXQh~`?NzG~o`Qpo1-!xEpuCaqrv;fDj8EStu)iluB+&+o)7b)|sn zie^-kUTbcZtJ$?#PVYaV{4~X-v~HECRelk-sq&CsL?iubZ|WOrjZnE#E!!M!YE8A8 zD6Mn&VV)~!&x7k%Z%SQ--^Q?HiAnoc`y%D}Kh@s9tJPcO&h`24!iH{(Sw*T9XguCE zio$k817Z+yL(5v~WB7gy9*;BBUeRgCsO(?%A$y8tg4Z#OV-Rf&=*s=4*=N((OxNj> z&8?-*#1=Q;431?9k7KVh0gYKR%;kN>-`7=B?;65+bGD&&Z>k5?E-P`=8@Tf%|6_4? z+LS9b2K#VHZ?*ZWq-ne#Nu_ygLpb^Ah&!mJF!?v&DPEUV9V(=!xbR$>H)*%GZ_3-> z)kAYBB)+-jX3HkYbk1$F<*ofed2Xs7mBSugsO(2OH0Rk_Qp2Ul!f}mXl0h^<43GW) zK9wk(2bxw==P-F_%Hc&{n)xXey#EcuxJT7tk`(a%Z4cI-gr9ldP;tv+$@3)clM1O_ z1oYu{R7hj0X@ou&P9r)ikVbU>jy9VK-@anQd&Oy&`~TJEN&)#HZ)WyJ?{abWMmeP1 zHtndxdr#Md zdI^>8e$L4zoS&O^k19+%TgkH)el3M(o7=dym6qBF&o6Q;=P(^lNthW%c~i0GXaBwB z_t>)d{)>O(=T`0iJI}vzPMq`U99BE(XK;=(U=Htve7F}Cc+j!xoMeSmMn7y31J4yu z{i{Ck?ycoS zz4KAtU+w?@u%UWZwe7qEbl&wf)dS6AY7{p~=y@T7&l^a5;}DIG=6#*AZ0a*A6;&I~ z*gQM^Psem>##41=$5GrgP7h$Z64rAK-|U%YFeSP5tc7!_slVO&*HkBTzM?5i`w9cL z;XKf^mvHv)9RBy`0sd32R2fxV=d!5WrZ~n$Q`zTbP}$GnOm2c~tN}AD?M2_a7{jZE zbN{@xXa3KUrk#(Bp>ORI45dNY|1mujgsX} zy~Q~e<;uh(%gkpss4O;{3%tksJ@PCd16L*WCtx3XySY!2|E9G@c|L@@Q_1IBC_l8C zJ9~5P395aQ20693)9ARh6>f@qi>1p zIEUSEm!i%n;`tCtv!QWK$G8O&do9glZSo}W}-}$is9>(7z_?wBp$MIK&KfGcop1}Vr@HY#8v+?&N z{^sCsF8=1>?;rS^k3agi5X-d?eJ{d1EW)^p(DyQ!Yb=8W#?$!!)A)ZC{$GXvFGu?o z_*;qJMOg_x_5q~+l0SY@b@bIHsj9~=vtLGq8Yz*LScMARhApR2!pP>cV*0E%w-(RIGnMR zaXjNB#_5dZh%K=O$ioW6c2I*TFz1A|h<3P)7zf_s>#SsaDwD3^wBh@W1AyL676M@{ z?m?uh?=g6l_;JK)ywVv1Tk#6#U{Q?MKnDww494r=^I^D%@vMe&^oH+C=eWrncLz%1 zut)5}>tllr3J*8vs(r3O*WISFO|C&#{Bw<|cztay+tf08OMK==OhSwlYuR!Z(3^%L zO_YkOnMya7C7Bo&Fc{GcuW=du_zmR;IeY>(hx8GfFl@%!r?(Vu!a1y$*oKlZ;vl~h z>>$74>ma|!tla#m?Qv0VE{d2h=9(YPsX`oGvJvsEyv#V7UFczmjW|SLr-%*44(#R)`Gw@UXYGZ}zd$+9^Yw_?M7|u=DV_XpHhGTCu zwuXOacpD7^e>3dH6ZpZQNNhpEsY6IY@A8V|7CgoEf00|~f{4dMB+ESJSS!QJF-`3AoOFxUJ} ziI=I3r7*0G$!?+Em@Nj!#hS7?ZniL`rlO6A?~68dNo^1lJ5I$E?;SW9d&_qv?xqH8 zkr|@F$VeE1;aB5^q5ar?qcNNlFphBo;)=p4rV9qW>EePx@3gpJ(Az667(MYBmOZfbOzc`9vTetfcLJ)Q|SuWb56iN&=1uEd485X*WiVEU%&HEifw(+l*gt1)x0(Q zoM|YBOBfT4((FG?iN?M@f11W}Elm*AyM8qYr}CS>=9)*f_cATR5tM3P1s|rRnGf;^ zJ!qom#GY9HEn4CnE`YBGMx--Wn7^{Cau_&wzuhQDop z$?AvcwsZ00bp0^hXqONk3n8K~Fv9g98MoY~A@;?FR>W!8cdS7-8 z!C9+|h{0KF3Jf--rFyvyHXTUwa?3Rp29p26K!3LyOJ%Mz2K&Bhb1JpA+;1gzP+?Ue0TyxDg;`-t!dk05ZjrouK;cm5-E#bGh&BdNS4$%+i zy}72;_JnQmjV^P|r$eW^T`*qn;f}E;@MyiQ$7Hb>?U%Vxznx%8HfTjiHUjYp!(<+< z+eC!=F}wA(pp?@&~qH+20hPPZqS{oUTW-)@spKcfZ3pHb=RM63;}u2_;0FIyI7 zMk2m6Ac1XC5a}7ygC=^m^oXe!zR&E4sc3*1N5oH=GeoWQ>Sf0DWnO!Hk0STsJg%iY z?!!a5Ka_BPu!}U0Dvz-Sjghff^E0i#Vjo!RF@a-E;8+tl)~~!ePvse}t7%;ytLFu{ zTH@t7SPqSA=}Gfdi04ckHA$WgxE~0z2$xgdA=X-xPkdj`S;qFjVV<>IOSL9xo8~E8 zUMhJUCGA7zV)(g|B^a*mfg{?KqesWHC@+ebCoh{umsERBvTP502~#{D@Ve)G><{}q zmm!|;T!pj5HP5vM-4(bA!$Dr#I9w|3%@pA&B!k6?x@iPne9@ zYv@eI3a@?K$4XI-N2yppHC~6feoD>sJl!E)<@Xt%V-EKjw1(!IKhK{oOUj|?wu!$cv5CJvanT5CvAe}p ztbs!&Y$Nv0X3zPg;_f*?>(I*1m1T0Gj78@o>d(`o`PyWbalFxR&-DZ-s`!(S#{Wy5w zC@VGy$Do|{!=*TH%*0P@QmtO+J==AlFI`;cFI`Mvxrd zovgF@;Y{8|m;}8qJV4S6W)k!T43nU5ZkYIKxpIS^&N>FPi%4`?JlyIXB598|*fP$u zoA(Z*F~7g}L9Ce}-bc7*hD)lGBUmQ_hI1K*W9cYN&p`~fO!a)sJ4QC* z>go*FWEz%q3Wlj>&IqcLGkm;|jitWgormb{lZ~sVtNRX4tJEmNF}}n2zJEKPq4Hzg zS(V~Qe-(FSt&(4rCAj9cb1C69w*+HFyIe2|`?;IOV!ARo>^f5w(^5Hv7;T_c~kdL(J;*A>tcDKJjVbS?&nqW!X3X z6nbzkCcIumSZ^cj9zjU6nXBpLAz%BrnhHCfN2DhR)SGTKFvD)FE#o(i?$kHT=V$Rzov>y=+2>@HmE}uUD(9SZX{k zEon}>DruLv0wr@=?J&}Yzuamp=3%+_bMedI>Ma56Gl0F7y98o?4na!+AtuUCjETOG;K4`Y z$tYjjI>toz)+d|jn+dd+wm~wMaSEid&ur6k_Rm{qo9NpJdF+2E#=6nE1hvb($D+1v zo3X5&fZ9VXrlK~f%@Kp{U_WBe9pOVw^hJfCY%`PdHq=CSttg#@kO_*F{6LE`oft}s*FgIFdWK%6C}BF+)h z5$B7?Fx@Sp0`ZclM7%1tB3>6iAc7$};& zwOodh0J#w{P~MLD50PXOAzwv|ky{ZHpm(9zx8PM-X%5r-*s- zB;p`>8gZyRi#SYvi&!Fm#I(lBtB7~YmRQ>>-(i7u-|g@SJl;#2I*9Dh|&hKarA!XLoP!kcD5Ky}d(kJb!&H zv;eU-Whmz1>(Elxj?qXqQ&?Nhk_wF^ufVgx-wv3~Ij>>)8jYk~gIe!_>)8KR_E5{( zI+S-AxQ`|KS$hz+!hw_q);6;CEX%L3jTCEOz(BL0eEK5RrUbJjlqE?l$wJB4fxTH$ zz>?8|$~cDQ<5)h0zI@h0zxMOZv_MBIVi4Xg4T7!7LAENwDF=k|ca1UnonG5NlI1*fNtbi|w;m zJDMe9IM#T!tYB>gYiBbqWqA!-u3_yOgZfo1YwK82$Km~qrwu$`pK_MNQgWUp=b6zJ zu{I?T<%HBmcFCn+%V4$%Wz1lk47SN+8+@%J)<70(dozw^Z7FNVv1B}AZAv*yD%ie) z<+B-=vbKh`YgoI6I zHWjR`;8bRFcrIHmWy>12T+5Pmtli4;T9(wZc0bFHvivkl8d%%F;j^s0!dkFU=>(&+ za6MSK9xPlB9QH-TdSIJiwh3l=C}R?9GgzLMHq zu(q7Bg0&SapUt?GHp_!q63Q6K@+8JA)@HH1fF)yCGKM8nSW?FR%NZ+JTfy3; ztgT`B8kVnN`Bs+KYNWi?v9^x2M_Jy;l17$XVF`USutEUr`*lPk^AX2d^2eNlp~!`fihhB9Wc zB#Xnn8Aqe!TId*-k73C;#tN2HaCkOj4PtG|8kVnN$y%1I<8U3z>o~lh@igbKfo&R5 zTbt6za{LM~hQW>UFWe~X${5I!U^gmJFiNh4hOj)8!$};@V4Ezq$zpky8_%B{9>el6 zI!trmI1Z0TtWBB1Sm8$U*(|SNZ)-3XmWw58*xNb|*Rr;beb%w0j*RgybN@`Q~v-~v2I?dWf)=CfRKPC^Fb%Q-9^$ZX4 zoW=4nj1?@eW_h&-r-=5~Lie&{FH7oJa+<@99G0GBlhmup#^ymEvT+!3r?{Gr^s?UV=&9J zI9!V1+LSRIu3%il+PxgBmL+v8scS(!xsfH(#H@EXQC z#zscz%^n!D7{@SHFs@-->rHv9L%bH+=uN3hAHrb9NFUN>ad@;3e7!&D*d>OEXiQZVjRslhOx|#QZMtP@>Z~< zn!{^YzJ~qm5 z822*PF`i~@WCVY%Pk$a$9JX^fgTt8^#`fZHDTmAaX)Y>bNjc*zme2C1+OB48HOp&Q zzR#a(dmn3|6{ppTdx3D<7q}{L-v7;8H}SD_u|LSa2;t&<$|^}s|R8jbI9S0wiIhLV;N&L<6gGe%i+@; zKFwj#j_ghCsEnp|R43W(s0Ok*Y!9IJ%495OtYzGXSetS>fLgYJC1(OUp`SAW{Scu& z$?ffFuE=ap9i=Ly^NcB#L>oKTJkepK+|f}arll;EcYSM!<5 zn$H}X1fL`L-1*d0Z9-`m$}Yj9z)=&yPYC_Az%xR(7Dzq|nCBe9+ZM3?Z9-`mN)!+| zfd2ZtoKTJmJR$I;#HtGzYhA$H+68u8@HX}0)(9Z>-9kADh>;T9x{&m_7m^YYm=kzV z;L!_NpA&*x?;wx$4pO{=M*v@+7Zp4w_z8ih1)g~a%T)^x;0nK5NbT3OkS%Hg<+c?~ zLTO*f93ldb3Oo*;@3fv4TrDEMwMg0`@ZciW_Q<0B){j=46#NwMc`L1E*3H|@*tTZY zFd`IdG1JZw*uI#t9l%et9yCz&)#CkDa^*>(oEA#d7d&1sREv@mT>;IS6wc|!1$fY|FTWo+A0;S@Z& zRNA<7zjec^6GE|;k;e-N{$-497fQ#nd*RDHEqK%N{nnGK<}7FIT!B%6N0&40F~Ls= zep>J|0_U_cc5bWWDfq6|{cvtag^~rnVf9g=pAcxRAZODG*0y~G(?$dy6*y-lDeVFy z0&@b73Ou3dtH_gGwcq;C>f9>kb_Dp}uRbdD(?YRUlc!@fV|T4)SqBAI7g09mUc`Qg z07CXIB2P~6qXLf!<@iOojd#%rp_~?IT}&-E=VGRs3mkn2_~O=_P!0l~XgwKDAaVc{?EpSeo)W40KQGrK=a!l|O zf}d)WRSY*XUcK0Ams$zj1q)__^-_w!BkQ?(9v65*D5nHJEqGH0W7`Do5||ZuMBuRwj>2)lPYG0= zvK9+$6S%AMA?u&k9O-1;j(4*D#|1wj@MNd-r{Jdrp6TQor#6t^5;$iAYuhGxyWkxg z=q=eLl!#EWf*%Bq{t^6`;Kv0&CGfOxS{s?0cO!F{BY4|J+S)pGbba=^OR7|2%hcVZ+&+2 z!G6xcGyNa5Dz=>gzINNe0gmkP0m*YCYjqQ!POY~n*_EA z>=@&?>=OKlz+*x=C3w^IWUe8(`5qMnSNzftH0y|Q~ccqvrD)>QxM}%@r z@Kb`H5nQF2n>Wo=O@iZ61n@S&I|Sb)cvSFgnlm?>-fu16dQd3G1fEK>M3o_I6SzxY zR^SnV#|1Wxb9{G=lk?y>y%0^iiO=0le3#%y1fCSiDZ!ie2+tnYtwW%9FY&p1>FJFM zeh@e$TyXC`#vT)RQsCShB&|U2en~5^L*Pk3cwKH39)VGT#{{0aiFEIKC6&Mqfl+}0 zybbk(Irmt{tdrI^@m7bjYwWdlzx{Q)$@8G+jK|}x^PcBj>)q_V+52(t1Kx+dk9+^t z`#taXz5mx+<7@G4^lkB7;k(+`?;G>I&-W4E5#N`6Klim(yuae1imz4ts3PdU#($&# zZ~WizzwG~+{|$d-;DW&6z_Wor1g2KjSN2qZPh*Rn=8@RBx+(SM_jpraD{wK=l*V->!bWx_Zi-DHlyyH>G>Zz?9ET zd1lIQr~J>9b8FVt^wm6G^V6EDU~O=D@SVZI;0J<#2wqZ~to=~!k897=zFPZc?d;Hn zp-AYN&~u>+!z;pKKdt*!UDdS9rrj~^@oDd_AFIEy{?_^j>YuKE zw*H0s|670lIV0yBIp^=s`S){XPVb%m>FHmc{`&N{%}C8SIpg1Fw9VW!^W8I3Gw+;v zc;=U8&Nz49xp$m<&$(Yd_wUdB)w#Y|vuCZG6=>*e_*la|4G%Ybwc(Y9^^MWSD!kQJ zjd$9n;9W@E?odPr&8io-Tdr0Yt7}xddKcc6L$sPrLIS8N=0yEpdW88Mb&O_>_zMc)EM3-yB@a_GU`rHK8as^ zK8$-Z_u!Vyz3RhwBkZHIm+e-iNoqK8v@OlzMm( zfA3hsdFQtQKew5bKdk5gTyhO5pWV_0`1_VEfQk7#05i?+EWmFq=>z_#z^~PkU&ns0 zj`^&S+_r8U20nKsV|C7f*(u;l1>U>)M&Rw|F;?Trw-dj!H48W>dCt517T`MP0m*0o zibJ3*-}zU7J38(HeCNA94fy%aV}LIR{QD5=FfMR)n0ST2cWh;eqZ=LteE;QyKb^`F z|8?qDL{24;Z%XYT0;EN1%%(MCG5D2@Ju7&D^iEw?`#A9l^v|@4`nPaYa!(a*RUr4 z(L(wM1%6&)|M`5H}jnydLM)YAoi>b%#0$FC&i z6C3^u@Pops+xSwL-%J?Yk9Xe7K#@SCq8e$`IGFRX#nPJLPG^XN88om-Y} z63W6W&Iiv6^Er0^DDZRhh<~Gnux2sgqFTbcy9p2OAbe^y;Z041HwgUJ65@{v49q6J zRNyOZ#DBk&@Dmpi{%%jA&IZKbJ17BdXuqj|OH>GOHR5e`5wxWZO*kE}8yeG6+W>87yjj4v1KQAy zjet9#M{RW_^r)?_f)>U5>S`WfznTvihd#BT4c~!O89-Z&t3|+f1KQAoivjnk7C`)x z8(?0w0v>=Kw(z#@O5iu6M)*EQKpXGvUJQ7l zk3dJ;>NBbf@Lt^RvY}14faf7V8ydA6_#=Qe-m$#`_@jWfdJH$fEa=%D;9o$?EZnQw z0sINH&sJZ=N`P;!!CGLcF9G5^{;(e4eRx0{?`rk|K7-cV_yzgwQ*U^9Yb{n-H@V~I4*y;~>_u0l91v$V!qAzXr-{?hrV=4O2#tY%M z0ajTbL_XDkSVgT50j~kXTlCgPfKLUqRjqY9@DLy*$NCuXIzU@Zv+e+_x9$Wy$ND7T zbll~#)p^!ozy;PlfEQRt0WZX@FI&CCx({%nbwA)T>p|qR91!2bVm$Y{SDwc>x+PYWqk?oaqB6-FI!&$&sP9#^)2fez<;#9 z3iw0o1mKVG+uyeOF@DJ#y@%iBM(+Wl_wZJ)rTz`jRw4UafYa=611_@v5wO|*F5qJO zdw@&qmjIXA-v?Y~{{V2g{W4&y{Ug8?_P+wIv`+)J+5ZlBmHiXInEf-rg#8L&(*7mj zUi;U8H`xCVaKHTw9_)vgA-&8`9bfISuPgLVk;kX;A(VY?pi6ZUk#JMEc(ciFQ5KWR4t z{7u0 z4!|2dR{|dLTn+dk&ozJ__FM~im!}VTei9J9;fVnM6d<&RX8`b+CuW_C_ochl0!U6b z?80~1-Ox;@>=*2aI_X`E8UGD$3*fWfF2HYkF9&?yyBhExycYw0$9oCj3*JisU-Y&E z{*!k-;6HmiVIlt9+XMIu?+(CMy;lPMhxcm0*Sy!@EuUS!#en_37HEhl@KH4gJgHK^ zlPUu|rT!LpN<9fYt-cH#?~Mb`sN=pKz`yhD0DRUL1N^4%YQX1x*8u*5ZwT-^zHaD} z7m#XPy@*tM)DMC0Q9lNLg9=wH2Ao#Wf^Sr40DhyI4g7s-EAaQJZNRf?JMgUP1)f*$ z0-jgz27W;80)9aC13##uzz?cH;5Vyb;5V!H0Dr$q0e`>B0KZl327asB3;Z^91Mu6_ zjle&k-V6K#DhvFBDi8dF>LBn#>K5RK)UCkr9S*?p4GzFRqVB2~1^nxZZdlaEDz3pg z@ngi^rA{Fh-*W)`lj;ocPpMade@gv_;ICCI1OA^Ct$?prtOWe8iq(K`R$L7D-xZet zD*vT`w!at7F8;qS!#_JDseV3ofG>(CV7hgA^xr&TTRPpdHSd(<@G_o#D#e@4v( z{u%Xl;P7K#5^*r7cJ&im2uPe){vg)i^)?({&>l*8O)+~Fmz0uxkf6A`$T;N&m zxy4*3rI9`${}_m93C zDn3?mwBnZ))BG3vuMH#vUkLmtU{zjP`DUfB>iMewsJgX!$CMkV+&1OzDUVJ0>6C>v z-8E0we7EM+8asGyaAB}5cvtYD;Mapc3|=?&@YJtQ{imsmYq!=uRr^Bi^w900dqbZK z{UY>Vp*i6-;p@Vwa8KP(-3@hj*WFk5`MRakdZxWGZE^jo`u6(I*I$0l_H(X2=Y7+E zJpCurub6SwjJ_EMW*nMv_l$4Ocwxq`XZ&tP)y(kB^Jl(e=6hy-WagQf7oU6QtS4uk znDx)IemN`Au)E>C4PR)O(m1nmPNO%=Z&~qUyTB)`;>MrjTY9__*5IbbYw=w)I@TfI z()gJU;-!2w_%0aIuuhwQw=~|niKv_Jmc|>`I5d8T4*%WK_;2|3w^F{F8h?wLXqtxz z{@v2(!?*a9mhq9s`|u5Gn$Iccmc|Zz*J62E_+bsrso_T&tMOfR3cKN{&}ma)_sxX$ zb1pR4xv+fRhTZYoVEdeppR=70yJx<74?fr7GXfnticbQTT@s%$*qqnnlfoyBPX?cH zNab!=p?mP%GJ91UES)y!qc+$&ZO}z+uy#7td+~W6K3RNn*q!IGGd}=XK8VlF>M~f4 zmqEu|2HkQQbjsz>C6_~obVGM^LuYhj@4X%Rq8HktSKW@!U*YpHd_IoP9r%0#pF8on z3pU^<@%d|5d!IsU??#IbqeY)ai|#>-j-Vw+@%aos_u_L5pZn0N&!Xn{qvj8wwhyAV zpTp-Nd>+Q<5qv(6&!gbvzu9W3$jJipywE(CnCDXSTyCCg%=7)``9br%!#oe0=VR)# zcz4hX`}V0WeizUa>SHoy$4&g-ndeFK{DyfxYo4<#U9Z{Z*<_w`&GYT%d7*hOG|v_C z^ukJE`WdiLbUq(6;oD94W9IoO`<*uX;V_<*>ce)pg5i5i_#TAGaF2aVrrS|NKWgYl zL8qJ_wLcPIx_eFhy(a!%6Mrw_Dd+dv-T3}yrS3C)_ZhzX4Bvf*?>_MPgfD>ajaKS@ z!+*cwzu)lRZ}{&w{P){|DmLJLJ1glPH0d5R=^ixc9yIA5H0d5R=^jKnHuORJKPCNB zrk}oIo{PM?KNp*4r+IEP&o1-aVxCu+XODUA^J=-+=cQaIwcmvIoA6C0d=tXA;eD$Q z;&Znhw(nNg!ZNJLpLLzzW8a0(rx8Ae&*%KlfcItVDgVpXY5!FFxBjnM#{w(u%E~SFQ02?kUVJ`) z&nNIXTJ^H^NYx43Q~k1a89qDl>BlEgJ=MMe&(GueYC1wNMp-;K{5!2fpo z#lBxn@AREBqtiDyfNxFU;!neREa^@J`=rv*vr>(O^~F(lFKjWW!Y7_Zzl*r!~&^ zUVzVv#`7z-<8w{pVQ;3f5o`W=(3R)m*`&5oEZ~0H7|U#mMWV6P&dA7kY(pwJx;_<) z#uAx$WTY#xE;4Z4P%1f|h_DyAt zfmk}dHMX~uj&eI8$)*flAH=$eU5QLAm57WmmC(BqakedfL##J>T`bX)98V3z7`xIbY88?8 z8^%+y=JiQ{o>)o}L^APYqPc5JY_va?+8P;+txqO)$5O~2e1a9Dn4#o@-i&0(nNE(x zHYbOMVyQx0XJULbmO`{1fpj5a?Lc2&M?5_?64|$YB$7@`PHgUKR!wJ#ZX0lAC^4mj zS?CX>xiS^c#0moj!gdULA>7jPrv;&ev81;t5J+4u5H0vt0*u=##Fm#0!h{^aI!@LN z!!W9e9?kY0BW#Tk7eRK$-#DjD8}w#5e^hfW-G z1TL-IoE(UZFpx?`_H9chi5CWFERsO5dyG*$*6KDNM94cf(WFV7F?UPv>OG(>I zUpn0F15UE_$&rzm6LRt|Axdpnvn{dAa58FgWzDFX3N0;|E9gq`8( zi1m*T?Tp9vfY)JxnnAaMuq_oIjkTygOp|ducT#Pvu|Zz-=0)t4Dq`e9PR7d z5Qiol*~d8vk(7QDmA+I#b3jurTdI1Osx@h?6I=WG5EzB_#xz>1L$TeccJID1Cp;=u z>B*#Gkx|2v9Epl%HNmvRvFgx#I+OnK!NEdcxVZZC4x|moK*qr$8MJ0BW9Y+~%$Qka z3?-%4921JLa~&Mgv>W4Yg6(N)gEZTVR#D$9)%s?sGE%s-M0g$fTBxdy;4G!k->dv8JVSeWRMhXVc}+E5Wkzj;>aLW(BV?mmSw7U znOYN#M}`u~bS6HaCo*fywsj_`aiVM@xKd_HZz&F$q{T!}%YX^b5Cl$7SCeccIdmoD z1e4ehVtWT-W1N^W2uNgx16aB028ms{On2onty+4=p_F$m)8e_zbiy*-3CpAtn9Otn z;&+3X$gEhddY7v;{jou4Db@r5r$y-H47#`|XNVh^gl43ngbxd7rqgMW$yYC-Mv^u} z;^@NyOJQ1|jPm9#*KJy^+X4os70b~I)W6kTe*~QRvslK7;K!oH`hm!)Q798($J{6` z*C4`jaP!D=-kWrj%BzY*hEy1Guwz0I9C4}4sB3ND^ zNb8eh`&?B3rMwCtL7JtKMg7PLxI!0?a#uR$OvzXn0WLHTTpd`>v>8_H7m&;A1yXq} zR_el5s-ak>Z%6NjRjPNDYnsW_E|i3rLjU(B^*FgB%QM$Gm9}n`E)Y=;yTsM)w3@R)z#e94S$KOGJSp0ogFZFxOQ~+zXyxAgk*&fY&1QPOpV|! z)|#~g!rhhLHr_uHA8@iOF7N5)jj;sAcRgLRW64^AJ=8{(3D%p*dQDte?nb8J-;a;?%HF=T_E7gs<@n-5{0W7Ei6;JCdAa~sK z>A;S$C``+qOe8aID6ZXtDi|Wt2)Fdhh#R$_b21|{iP$ukn_Oo9#wCAE@7lG^TavqD zg*~YHOET&$Piz`j%#DjDYy{KV1Z}QDFhbi@3x8A|>$R}}8y!`P_71~vigraYMMnDi z;(BXZAPzxcwU3Qq#)!QPHkkBf6!Msj^hDN4Bl@t^yRw8;x-CNc1=%yRPFi>dH@$B{ zS8Yj`610_Hq_KA8w9bLyWI3&GK(+_Pge+HAqDaFI4HYSd`%>D{GnGLP1G`QjlXD8{ z4vr+KM+M&&**B6jczZOe&_mQBz&1i>r3}gG42tEB)JSJyAQ_F31sVyGyKyAh9~tS1 zft2n`^TG1E((Rc{WMCLUSzkwz1J@Ozpeiz{c>j0?BaCf&JTYVpH5tIJ^x5P4;(sDi zmkV_q?vCWpO%PZ)_ws8q1^{W7D)@0$FpHS*BD8rM9Xw zNb6#Hql-?12o~_7$7y?P5a!dcw$4-^O@FASsK(NQx}7w`kQY5PJsRywuiG~U=Lx9Y z36W~E3C5Jez+eGQV^eRmAHqAKTL<@XpI4+AMWJUTI=z|E>1Lf#y1CpdvBvPP!!|h< zNvv(|#x7Aj6v+QC%&R1=_y~3+(viWKJ4@Z=#UdESPP0geyKu9ULQT+|*Ls? zlQ+a;Bj7628WS1HG{!^*>V%0@%=(GMKQSjKV=kR;e}bcQMoq?8K945jDVstQS+vMc zq+cFSOww5GBALj&JqC{>oS_qjLVS%A$z6jmP2+=cY-r-}j7`R{BQg4?SvpfGnjq0h zQX}(8sC2weED5pzI$W`nN3WBOmt*HmOx^(_Tg zabmuOR-7egS}_w-ZHEtLGJ4nG)?^~KB?52y#6%do$s@L%l{`rfAdP$Ko(ql=eMMD8jAm&c*_VLL9DBdOqF)%fwn? z77Rg-l9N=}5j}C|bIPP9ChsUXdD0Ujx5ZNH;k(K(sfxz3-{pAXLEcsJ_(=Un3%z~_*iTtp5O@%Jx~)FdU4`4k!se=i4oi2#hZjW zJ_&JaEVCz>x~>;K-sEKQP+D+yPUv0?^I2lJRh!5!QZs=p?oZj1$sQaVl-+%OW0%~ZnN(b$O4I)bp zMF2a;6y}wQqp!lv))m#8$pQ^hP)4Ic1DP=#48h(sq244j)Ru-JnUOQ0l-_ih(5Rd| zNL{zVvc%}O7qaEJ9XtS&fa>)u(IN)0$!}l)?{Wv4C^HmPxw$@Xbf?~ zW4pOK4&Qk(5<8)@Md^)Ik(IehPpTg1jhHs>N>^=d&X>`cu4}Mt@iv_0RAbk=v=>|@ zrS58MoXS1e6HfGuqh@nFfqj&yUu|V$do{^{t(u_E4R_yw%W`#R!zQ_Q0ZN}!!PV?0 zru$;t{yKT-ZdQ;I9N*AL;l8neOOB5DqGAP%bgjH32_?)GWGpQkE%8LwtliUx{t+*| z#K?>ktZ$SIl0^IT6?1bI6XVBH6bL!Xa|qgn#te7ZWX2byU$f}a z#E;~#Is0%YJZdV&N^XxNh9Kn8s6j;9yAnDic?knq=}eFSd`rVR*#Lb;GGyzyu~vPN z36uee=t}Iy(Y<1)#s{1;UJea>qVZHR!K1aE5qOK?wo|dh?gHKg2L`l>(48YY^60H# z4_r0IV@qP6_-3Zr&!j+1b)W%`6jK+8(w<(f{f`V>fh$fYxu)FDIGr^rnZtK8_s_{~SvoY26 z9F>T2%?$~s_wa6ppv-jx^jjfNQ1wEAt)LH?B;?+x8yBXSS#R++1=b;v!7i7DqKYd- z(QE-DOrZ8bYy@1ytBTYuX%}5`(7Q+%6)Q;J4yfru!wN=<996xlA($(NaNC0jix0xJs~icq}-0!zzB2-`i7LqcxG6T zlx+3{#URO(1AvjHxhP?djXPZGXLQGO4`kTqsMM&NY;GGAG8}MaF2W_n$jT*HJTW$| zi>4lGfc(&fSIc zX?W9|=?uSS zmTk3u1PAoa$hejn=gdhN>i{~BTP8CEoWxQ|L0C8zRl)U<3%Ru=Kn#T!HKxk&_L$63 z)ftWBj>rKtHlUM@At+t z?i^&t9EDD!Ou+l=syOe5?h571PSfq9LbKS>%z`}rZBx7mpO0Z7CbJaCi zjOdM|AXppdT;pD}7yc$v52WJaNhwB_j8>8C-1A89jHlxe zPn^&e2G}eiv_4{~B3W+gbn<*h+bcZOGILZ~Uy=tR)l z0FU3WD@x{Qk&}b3XC@X)+z&34Ef$wtlq=Gx*Y&l~BCS{ymbt{fVuUe^W%f zDJTokzU_izg^q4><3O*>bm=K$>QdlbRA`w0?ZBF;MNREUXd!fwv`0*C92=$$k&(3VqiKWP(61OzI{r1( zecWMz!i58$LTdP^fpNMDC4pW{yCUQo3hM<9!`n07pB9guF3W08>Lo8G~GQ zXbfZ4sJ;;Zjy_inbAloL;tuP0Im9q=8Yf*`k1nIPSyopbY`_yWCeNNsa%_)aT4eQG z2Wl9O9t{3CAhH`aQvnEv1=$W8Q52L#wR0`SLB9}?wN9eXMUchbl1mweOuGz*3{n|_ zsq?T2V&WJKn~szyXBVT{85j!dRZ8g_(AxvU(1$7KN)7L8YM&D|BF8sye?-%CMbM*? z%4n2Tf)Gf%`Rq*+>VYGMi7Qef3}z5XPwAaHQ8}^~{aOf_du5CqC*V#IcgIu`pLN&} zT&GIxYtyiGyj(G9OfM#vj_ns7)*1#VE^A!JnM`M*3?UsWg0SCd`e2fSBC1HR_Ov`Q zr0VO{TVQ7oM@CBS1aF8;xX@mh7O)(}U0<9i=rg=v;tI2Gcx>e&ZFJ8pEwQ-S;$r9< zD3*XzFYzp35-J$za+_OPWp-Pfh0x04sdPw2!8t*8kaG^FlIB1TcS7a9mSaGuoYq;#S0)yTkuqrayR3z%`N_3bp6OIa`$rGs)j}8i> zR&p$?I3A^x_M)d+xxCgCEnSZcRe^I4i7Pwy#hAkhxW;1mNq8QNDGMIy62IR+zYHx7={&4%u( zhKl0k6HXp(0w+1}LvtJ#@WjKK?Xlup2t2-Ug?b_U#T^m*+7&8u26a)HbMK-nfs}=D zDT^v3)PCgBbRs0Kw9ZIGM%+2Va*B+V5Ky;5c~1Z7+k){MbdAi}nA53_Nooe=EUy?k zS#fa_%cZ$A9jn_8|08CpQ;gYY@}3X|1L_-A7+pLPbSe=WG;dfbyaDIDZKddcmUYlY zgTGDh4P3M?s7>6DGYcq-=~@pt#@*DB2{EVu#8BJ=BD^^C)&c6gLV#o9c;*U3XDl$N zS_|uhGOKDFH;jPX@rh7coJt%vzV!d3x$s$pgT@1Gm4Pio{IxdpQlRL;Fl`dG! z@NQ?C6=UKFTwN^&wbfP(_u!<=c_9Yxqv`q;MQ7Bkp@lLRycq7h1 zSzn$c3B9nP)*<8SlR%ucdS@(!@BK;2l7Yn>PS(*ebU_k8zkC7vvYA7pU`^}e90_Uh z5!5ik>b)K=8sKt)V;3^Ka2~rdc+Bd8@z)Z$2EyA!<k0_UOwD^zgtcyLy53@|^$0+RD$ zXb){^=)Iv>Oynp~3v%T|mDi6l=fw48TmcNKLyz!CAK5yRFHWA6+Jlu8)J}9yN;zwy z>834%Yo{GA{U3l)a*mL75|x%2Vo zvM*i@!7E01femgx{e2F9rdqCauCwo=CVdNeIX!?@l@%;rb5}*0>9J7F1M=9C#O{gB z>@R$;hdwIAo7W1j9}OmnxGGhg>S?E^-6ZN6cUbEQH${Afu>l+wrOhgxiHvNC!;z3S zRC1IML_0uadAlx+J<>obnNAL7n%51CG|PC&)?^S0u}~++zAmiZ5K7s$IF)u7%62v7 z(X=&qyjY&R;NdNO|3lVlnwm%krxI*pt^LrKv7*PbSWD+j(Wq+}H}r|56}v!QPR9bK zpKwy*U3IO;c{xg>#w+67@KrGU+;@V79X#Sobu*O_%oSpBv+@QHXBRF7OL9zqax-YO zffJ-3(ZP*o;`zxATqS~u4u0MaMU4cfV3?P$xWCYO(~nYe#~7{#9QKuxm{KlbAVax^ zk!CNKo&Tj(#5pU{y@#DNys7AEM*+cI3EP6FImib!*JbN4oJ2zBH7di=F9en?T3%;r z(6W<~bctnScwlFumL{;9CmZRab5RS0>%AQwE~E?JNTNf7LUXN*Fw(KP1fS51%Rq2g z>}ePk%lrB=!|{T2xn>l%wG*?)$8{K-R)44ZrwrVxIIAq;*DRL-9S8SQ+ zxMH;J;36<1S5WjIFT7}rEbWTY9yJ$%J8$_yh6xpS4uP97GtDV5y1d{UDKyZvg7N5K z0A5^k!k)%rDQ*iFrPti9ml1Jr)*rns-UWxog<2aKZc1UEq#UYCd>oS2=1zzibtDJ$ z-d11jN4>C%a2U`gs=##V{zOlGT3m&eIvbg0y*bbv4&GOy6VfI3T^$~0d2?Q?7flAY zu@hfhN->e;aMFpvBy~`+YqdSH(EH`RM#pQf3J2TzvIhDY=SO_a0aHxAA4Ifwx1KbwyZLMlX|Qc`v*!Bc{MvqSyrR zo6UrXov@eFy09C;g+F|WRvEJ~%?fAurCBli9WYu|=UxExv8=J(DZ^eo5poDjfX;=B z#~FgN7;k_6!d7Tut@k7JB53bP@V~l;GRet-)y0KpT45@A%?iF7DK&S z6N@f1sHpjv(`oWLy)v)W>x*~VFD??cJ(7cio)K%bFI_b~kzcJo`}zj-S7J;i z4^S3PtR&OxwWDC@OTsiN{jxwL5jy$HJSmc{oHp5o185sLJ;5ZFb7LpZ!j0VmVI)cS zixjA*q_H3L8G>d|RyJZ+1AHYC7SP zX@wJXCWUl4(T@1Tn2}u*zOz=WWBQzxHk1WrWj5j6Tj>}xLokJO^FH!PtublHZ>>>b8Kwjlgybeikg=6vy?pWodPo~5u z&}GU(NLsU?3q|n3gL5|rEsSk}z57WCZy(R>4CbEj zhC~A%qi#afJaEkw3G4*;Yv{q_J7>iRS@E&q!bCJTKus3waKac%$^8~yN5EoizNl)F zI`qKLjsZ?2$J3L<7R1iPIRm;b8P(rsun&R^SA&VxDxvVjDTPF$o*Yk%p^nkpxeqQ@ z3T*-y+lkhQ`0xoLk4a)t1}2=F$fXa)>~OxYa2`k{H73J@Ly`7GR1a*=jB}8gGf~>aY{xoGfX%bEvw3PKZ^MVdC{YjbOLgNiQF+-^6}N+KBI|`0w}e5@D@V@hFDT%g z_~NisU0A6!R=mP$zIIBJH%hX-`(#-w_jkhiU%Z&8`N#N@fqdV(|2q7322jsN{2<;M z{F1~telKGLzk;DW_%RUA+wcQaOV4IH^ zTzbH-SgPz-dhv4=F+}Jjl4j z#UM)LPaCP45j@%43|fWXM47%HKWKLoekyLiYQb|6o=fqxs+qH{sj6pMc9ZVL8ziKB zNz_MG4k9Lr4po(7(y7R`hCisp4jxCTs;(0ppsXbeAiLN3-;Ek1kdol;wlpo>2=hTPIlTnW5iYD#(FxMuLBo~&sCI7>@`qIR^acj71V zw&TZF`cO)@!8-8cD?RvWzIAG|#B4&^UbOW}gw_eq6-dOZlvtZPJrNqVQDxcGSQ7=sf_92IM)RQeuDGRfhPyRG-N~!aE0ku>Q z3S|)_i>=TlQlnV)J5UdDGatP0BfV^O>lxjII#3@_?P?vW^(yBF(@>8NO9{^GZjyfF z_;Z{!7kYYDJNkW0Bya#R&gil&%CiK&J(~b^6nRp;7d3YRKc-YH+gU1_P=A&kLy9rP z@55+2>6Paq{C+HZN6%!=Xy&>H`KR&3)lkWi)QsqJE-PG;ShChBO&D$V1HLU2w0+WJ z#T;0FE?ATcRl_>757?v1zfoqc@^6C%;9Tddryfw1n-J5E`KhY6;n@q>$6{C00V-!a zXTF-+4K2}&x!f%pLse_-fp05D&KF^Azw8NFH2)*++UkS5vnj%$icKLC5)M0Rb{S-pGN)}7rs3S?yyARu=A|~mnlK}^ZfG{^`FwCqCUeeg#kka@ zMc$Y%YSG9!Q>^Ju64x8_(HtFL)bbNJvUgB9QH^mxIbFKY5VxhQjU^VaQyM@Mic_l{-Jz#!KNKEC z)9Fs9ll2104j?~=mnM}KKq|)${LUOFKxz3D4QmI*VF9>V7j_%-WKNFBSsV;5EG(O* zE}>gg$)y)^$<;p}zqL$3avOeXOE*fINLjialGw%Vs1J=iN6E7Ho6a&5VVL+NRfs)BWv*uw=%G!(9Yw>ERd=yx zwvLHhtqe9@oSTMO-WQF3|jsK(7GIUzF_P3fxE)EOd`Is(#+tK?u`TRbnv{Ae zQZ<}Y+)~iAS5q0HIjzf4m4%o}<}t>0V53R7K^%1b3xfSP>*-FCTr<~9*X1i~YbY}Zry&WNLKG2eScRmi)nz|iv zdi~)1rTI)30NOIYbnYyI7NRLYUG8=fSS@Fhprnkq)*j4}wWoww+3)qrdasuv7F!fe zS^^w0ZRt4Hf0GCbv*0k`qybsEcO9iwr2?a!qn9V<;n-UgJx=A~(&(<3UTDe7X~^YE zFPIcp)`$&oms(spVUsQ{&1vFp4qqe&L3HdN1xu~iB`W*SIz;Quyx#03W!BIph?wzp z%u@GEE|+U<%+P?Q?p!@ZT>nCNxS?e8_Acc|hpE+QRvcGq1Xl=hokcG3urmv7) zPX(lnIL<5Wjpe{N`w#6!)U(3bn^PdhrStTxp;EAWq)&B9xnj)<%jI9o-aXN8Pi0iW>Kw%!7lcg`2!X zQfr#%G&(uJ=)lHn%&zNNaO%FKNum9}s*bVr4C`3&woWab!s@B!=VxB?+K%qee&hQ` zqnF?EVOmd?x5=^sK7dd?(V(x%wt|2lbP2q+qCOnA>R=98R(QOE5!stTTLT(H;p~U1 z$Wb4Tf>PB4QLCY$ zB9y(4RjGgh7Ro*jZszAl>`$yv2cNH)C&HT%y_fmu;*lhrn@66UCJy6)X4)h@qw$7- z&MJE=ksOK_1es-z=~8C1v|P@bjYgw4SW~MpNbYCIU5VD1+$ut&URVO7`<-+e-%|2^IQvRoS%u#eGN!%ACU@FD%b!)frQlBUW{@uxJHV()CtU}G3&}e$3qrY> zH4>Vw>d;Z_#@SFHH;MdcEkFwT0D59J$AK!rLPr1wM99N!()1%Jxe}ALveKSyp-q)U z>?(f%i2So>d#e3TfRWxQ{wjCaSL3fPhQUw~^iOdSK=E@hZbls{{9eY?Kxx>fZXhD^ zLsl?^@evv(4Y}*o41X}7dp7_P$lY#v>_7neOyrQV7w`nC7373b7=udAI>E!xMHO@}7G|!g2&QjCMXklTTnPzA&qL#2sv!-R0j3C|s(hdmp+~Cy zzD6Hn8+`$v-RP?lQDCx$N;Kdo6AQEoiYICUWds?;AfrLPDW+w0)E`0RY0zZJQnGr2jE`Fll?oaM2nL$DJwcVv z1x&)I5Neihk(zPpHq4mXWY-~5sGJ-k#`jUFQ=SgnGTE`Jsqi?v;y{ZqJXirm7Cz8Q zQhuLa55P_41D6PFC(J$_sM13!^E3A}h@srmx@kXvxQDWjhjKrXKE4)^IQ!*U;d@qa z&goEYR4C8O)IA-}{X}Q+6RL7bc(59iJXou7sb?qVupK-P3q=@fAG+jsm|Mc?#_Kq) zW$~d2lqv2c=!!b4ipA;du*5;xRS{}J1x6eyP1^q&bx!!eyg)!SILI=PvM^vEtEj{< zyr9cC0fkrx@tk8ZK78bEjKShe_)Km8R?Z5IV9ObVZYDOt9CehFr0ldh;+`3 zl96hZuGvEUJBNiLUgNBaFPv`-w?d53yn%9 z0nG0F6&4g6?TIVQ?9KyvdK=@C8r^v|${k5o$#QD?j>`1{OvF zPg~N=l{9k&Um*Ab86#E^tKZCk-^&h#bs+s7fU$?}M_49)OEs6snF!*K8UuLt39iCI zoylx-Gr1H%rz*RqrpBWbtOHLtAF~6<(rOTc!fJp>V1?HaHB_=-fF6f7mZ~i@b81Yg zxNrt)6&{oE(z72cGj&LCipZZU;Aj^t3Xr^;m<{pAlJl(2G|N(e|Rtk0b1L70r7|m z(fUPtaZ@O_2`u4!1hNYeY=OS#wBTYegPjzaq=GC731AfBfj`(*Bw(H*D`E|z4YiS! z--o54qRDP(Xrv*;1r3BC`X|2$mcSIGKm#ee+=Ybln;oKFu0o@g)Q$*LhdV zGQ>{B;85vie*he{C!$&GiUy`|f?7XuufgWXK9;7G)Q!ndMV-;N!9oIRj;)A1tCrZZ zv8ro>AomP^ZlJJ49k=_w0ahESFdjzISITCtb8 z=OrCmd-JHIsUmw}sK*Kz6bNFs4>oQ$bqwqkk@W0?6*4|-*>rye=A7)F^pJ=<0k#zT zxiGA{qpMvM8FeTRVP}McV`of@l9H&E(U{<}*yl5X?-i-s8`Sn|Ep)`y7&SBmPp!^w z6pkCG`h9_L_J^TdJd}&E@d^g(wXiF-H7e@_VxS0NWW}+I7S6{S{7_QaAHvE+uM^%O z@Hwjid4!c$Q;>}qpj-%qMcXOQp;M$&!OjTeP;CaV0T!t=;8v;LtxbMk1Bz@x#h>9W z=8I@^)_KAd$f9F4k%JdHaQK|bIXOLPz1B%X4jg5&6U<8rJ0yi268xi7kB>_fwed&K z^H-v!XQ zTmQ(I1NUJ;z_K6~>?`5?$Mw$o4cZozOXu+$BtbTk*>5;12OgB& z6n_=YxJSk5^cTba3N-%p$>M$}eb~-5QdVs`14KU?vsiYRvVnlk4o*W<3!0?&38Y{N zKDXA{rBWAgBQ0ETc3B~|zl2$;l7nI@3XfCGpSSyKvFJl>hV!lP`b-!WGphMk)2Dp0 z=Uc=1)%?re&c@{9RH8?%2CSX1>NMU^(yOmJV)1HWNb;@D*a9)xI>XpnNStpCp2Z8>Y|5*^045K3H})TOriWS*s4>MPqsO-)q!NAdXIz-JSDtOV70}J zgPFw%r>FmufKRoGV^{X>gwft6+F+DKKG^fu0Fv9|JU9o##qk zWmi7%Ctbj~&2sh09K%>7J8O<#!1(Zs& zy|maVFbm*o5_ds9GM!2Vh7$OS={Sg(+xdu7)mq)?1%>vwnlbHMW|1q#!KQa~IM=t_ zcN;Nhwd%RHdzU(z#mI1hH#Nd(;OHU;oL%O4`zx&a}*#fbF+3h z#m$90(ag!-P8&||dQH{AnxBiERxuGa##nG@t4npsuwb^-a!q)Q`u5w7)&>5Y_#CNn zf$@PzXX$_~yRcCw#7=v%bS};%v(SA(>?0v8kAWLwNm%LfX+jllp)Eo^NVkrD2oFkT z0;j)F@^bFf^}aI#(d8iOKFCM3EeSgldC-z%xDC%rXmx!6ptUDyQtK$V+0Y&#rUNfW`@p_Zfr4}SwUksW5v=;oAG3Nbe<5LXZ|XLbt-hIq~hun*L%xc zT-Klb?NT&ztrnZMkiV3qt3w*vh3#Z5K2jDlL=7clOm~vGwYnYpsY;wkax@@)b~`*2 zl*~IUA4?Z|gb}&+I&lZm!+~Q3;SghnoYhU(6<^EUa8ZDEi4#TK>U5%D8;LY@vd_S3 zfV#k2UsjAB0x{+g^GSO1X@$OlG|mKwit@uMjSa#he&vNf8rvy_T_7EL+}OY=T?f&I zsL(9eb{piLgGx)8U8GHSu`tDm=V-vf6w^`&VoC}I3qzLl+>t_ORMUY-<~nSGptBN+nGCCK`t(NG?zS=<{UCp})2c9NuE zy;2DZPHx;oqi+*^@FWsA`8frIbI+mD_$w*kkT?_QNq|CHK)Wf&#G&l*(2b!Rk@nj- zuFzTV@f<=NU_;@PBrWct8?osCg-KvX%2M~V^uyC|G9c$u*pVyooQ3mu68zrXH(zP;#2R|For zwC{bPm#Qwx9#M0Z@@AF#xKgUZ20(awPkW2hn z_K&|9^8e!3@%LOb@Grl}{&-$EGi=>|=6$#RZ13#rAN@qlZC`GlxAVNQ$Nuf*=a$Vp z_2|sV{WG8c-LV(mU-^YE-f-;&UpjvH*%#u+KKjdli#1%H7+UprH}-wu_}ut^-+AS$ z_ip^_uhst3RUg>)nGfCcV#`zhKQ4XujHiD7Yx`}gLcg+PZ&dasRaLxf>79YE~GNKSKZT)OW_p5t(qUe7$o;Vr$LSzCVTvbOxr<=g)J zMbQAe750AHImPQ4`fiZEO)#xUc5Z&e)HGh&C|)^PBp2Dds?Ad8Fh*bJaKA~?pnG=m zyP0nc`FF~1T_TJ1XBsvL0RW&vA}yqWo zOZb0bllk`OOA`8r;ubb-!w<2>2k?%tya|0t|H_q-)`8X)EvuI;k1biXy58!wYkRJX zk0B@g5*@y=3SW|jwXV@;SK!a%slYibmUkRwh?@yEhqoe}Jyi*7K;I@HnWwchljP8s zF8CHQy-9G8;7PLQx_A~tGXfY667b}?HRJChc$hA(j}m);*fC;v1LUqJ7$@xsR4j=5 z4Q+NsrDXIWD_F&h%poLF{D#a=62N5!e*sFS0fdrCgJ|MZjlc_#Zzt%oD{4p?1IT`d zHPr_dq|G28SMIw2`D+Pc1gi-4v8h){3UP58YNtHeP>#zO>Wgc0r-1ahwc&`PBQkoXV$W;p$^pu)q2T04;bLN5 z=rwtwDXd-odQ(8q$$|yI1ZSN1Nof=_FwDG;5Kzu?4-ilQ^I2f|gKUyE*Q9Y`jtNa% zYOIhLL`-#x3GS|EttL2D7!SFl^FSwofzO=jCSbA$sw_oC%!SyX#C;5_YKxnE{6h$b z9+s~ThvV8MUi7!(SkVr3ggRg-;_1VUiH;zyzJxkzL)l-8*Amt?#`Jfg4$KWYe|qMJFAmH+OZi!!R2v%zKb=f{*P1?f{u>g|7lf`c9ZiK&K-%Rh;N| zpvKG=E(y4aX%(9=H_F=2eh1EX#Xrjj?lb6J2E>j|XI$NpR`bq|Y)s7_gyoB}!LA4u z6_h7YIJ1;<3rI~RF065HEIuV{k8zTL^EQ3N3Lh6{CU0l3I=s{s&QvKWgSDman-_R| z^cE9Bm&xui`=$gA3Vc#ro7vZ(w6qgS^cxM@?3;SW4K?Rg=%4@w4t2D7@C2s=?x*2! zBzqTBo@8_vt$ZAEvz&)@HMtK91U*O{kn^_e1G@YNzy#IE03MR!ZXI*C#2i6U(3;R$ zenA>>Xz2lg8_Q~;=uvfWDkdEA>+KkJo~#(WmZKDl+A5v%UD7(}57b;2d@CBsT0q*e z$4sM+$yp_RMyMSQk%ByjzybXs{ooBNhG@y_!Q+Xu9BCq}Cv?6~1dWhjtAV`=4qt48 zp;zeM^kc*@T)}ES*`>gz2(I0hL7eH!VG23CGO%*ohgP+*p6HuHm{XOw{$d3n#_)UM zG25!D^>_rCZBME7dJQ_;6Rh?53W3?)+S-Z=S8%p3T#JnhGnkFrL$kfJeX}d3)xwcj zN}BDjhOJ#&ssCeSaWe=zZ@D@op#a9YvXXNNRjyegZNvoNMIv!v;Vhr$thie!7Xx#5 zV4mYd6sd3-6Ia#3xx>0~zkwTp1Bg?P&}dDQ7kgAEgj+kf6@-I~(CAdS#W@w7us-T} zI>@PxyDT!#f??+51nAew&8)?6Aj9k-ks++87%ujx6AVG`l*H?!sN73DotFp!NQRZ$6FaKc{ z@_vdl$qqrxbtR0LXAj}xppmz52GddG&0xHbky{j;00F<`Qm1}p&s zYFOHKTxfLn4MkbHz?QS*c_>f109G<)8f+4b4~iVe9|u_;oIkm7@(Z1_J>M<^oo}Bi z13eDwg^~F#_N?HzyMa_wbQ0#2?}EaIeMNQfF{J{k(1jp=O zwrM6g7MDV5duo$U!VVw0QOW?(M(J>mH3qQO2H_FhB6ZuuyON||J9UW#g;zK<;Uz8h zuG9)id5M5Y@xbx}ImvghFGlGNglWV}0+{S{A{A)7BOs-d1_f7S(H(KEp|KO-LPQ@y zxN5dpq-cjR5*aFml(2qtWpulEu6`Sld zcbceOWGyy43`(lITBCAJ5H~?Mt6#w+;9P&htmXNSQwu<(c%&)oITu{0Ah}-$`Xbta z4O5#cXr8nxCS1Yg$vcj2 zwr~x_{VU!t27sN)UZGUs!e{nwq%4F`REPrv9>kfHkUWG%PoQ>QZ7Ae0VIwjwkb4Z5 z2s>Mo-=_VY^wTqfJ~wT0z>f}-1L_UN0TbL2#J&9D+X>`?Ow;=;9R#Bcf0$-kOv8CA z#1-aN42Ybt()oy2RBe2M-UXOKK&t!;#Ad7lA)Em~9W(`2D-dmO64TZsk_3EU#Xum3 z>|=zm1wnxkNO(}-lU0&dOh4u)ds|OH1ts<_fe#CO0FdL%w08@B#1|mNRE(uT$Ry?o z)DJGz0E+iALB3t^8NzZEljR68+^A-QB)L^80>c)aFG+5f>afoOmhni;rfag-K8HU~ zgP*P~e2u1jxn0@fb%U8)`wGJ&=vSP_n zA(;5qrLD`Bw=8QRr_hPv6K!dYMhE(ru3oWf)za0i%a*N*3@-0qxnk9d6-$;4##Xc} zkMu`dTU%pGR>ubWBdZ4cSFMUM&@#BPzhz(`5{pHb##RlkTDoj7vN{$UTs9buqU@HH zg9A%imc}A0Rz{aDU%7f^YfEHF|Ehr{t5!yqx2$SyUEb2as`dZ3cO7s|C0qaABy<6# zh@xl&5d;Z0A)$%%BC?dFhzN)w2}Ptx6%Zs*vG;;qP%Ky|x|XM?AZr&3_6pb#S5y>N zRMhWG8bw@p-`oA^_kIrznogR%To_T+!*_ObqkHvHmnK7k^ht@cLmAUrs8M zW=^9+N2zE?Z=!f#0OSYAcRUT0iz>ZC6+W$vW17-P3RI`~M8Mn>h4I6B;FuhQNJr?_ z7-oiJv|~loZXcyl0lJ(j1nEwqCISLDMBU-SdrdYtX5kN^9H{UgaP+9rox&4R<0FKr zLTRCj0NAJ!luUR(6~|QQGz)^DF$fxTD*-M?LMT&zPbruUwagZr4H4WNF6-L~m zN{UFLQ31D`>K`vjpeDydSEGn3sXSpfqTCRxgiDQrNWD-Nmq!DV{cy}vn&s~x1Il#6 zF-H*_KwNp?@Dv4S5=yNwu4LB$PR2HpXLv$xBPOvh%pJ#^|6(~1?oSelMOqTbmqbkS|4pM2af;WqzRLKgtiHV~b-}f4Y8< zUvU%(#8bK%hQX+@{91MiUr>KYadM??rvqYCmoAZH5XJ|TTzmn!`6U|wgUt!YY`;cF zJ7Di0uo7lkR~&Qrcghe(V}dX>VmY(IF=ltgbOJ8@vJudi|7K3;MQa>mbysHxd|we> zuCWbDl6C?N3kMt%BijpymxS#Q+F=re|B+%z72+L2g+%Mtn14AOygW z)=YRy-?atc3+T`r+Tux1+yWt}cw9123;YIZ(a!h(6KekjqwjlD+gZ{LBy(|R z@t_)JGOfXGAhME%3PmMn7Y?qjABxfax{%&UF81S?(vL;1e)r^3g`t;`EQ3HZvJjuq zv5g-{pufdubhhLNBKJ@7`KZV*^IZu?JIw7$$3z&Z0U7_oz%t(&kbB^u+xO;t=ecB1 zw+-ktEDz%tI(GD3x!##*<3A$0>)-^QqoY$l5cz+O=jfEz4@C4|;yDadbUy6|BHyI* zdIY&}(y0)uBb=9r=5bgt#>c>1F4mtpCEx@6-VNwH)97?jMIwUf5`sYmp~HYb5XV6U z2@PlQoY-l}ZGmG9k&z`dOggyrATA1o9g!p$+lV75Bl8mMy)I53aSdXV$+%ODEwSO# z**xuH8+XYs496lVOk_88$o{2|sY~`w!MVPy{!7nWm;A{3^NyPcfzg3)aU9-PDS?tW zI5w_3EA?BRHx!&IDM@&;(TUB8;t5@`B3G6$5~I{k1Yb%vj-~$-b)fLrV2z7|&p?1D zY4CDs?Z^$1h-0z;eD&>Bf>j%VW9;s#{7S$qV`;ib`=dadyjX~vBXr3c+eqBglDM`) zUm@7@E;wf2T{WE@W8$lB-BrkA;*DdYzFmq~h=g{yC~!5}%Yvvt#x_uawDllTe`|T* z3IZ3n*MCHxD0HioL?jb`dzrw;1RRU$j?V5J&l0Dgc;p&OuEkt-;Ibj|5U^J2clVDM z^`EpAFs{VM6iGPv^u^!dWP$WNBl;>i$%r129CK`cf&{5UaBO;vaK0xg!!A^OnkR%v zjRyIH?MemrxF~Sf!=?m!>?e(HKc)%WCa^F?dz~FJqtv0@rJ~)@F3&mVfH$ZkqnDSUQ&ez`CNQLGR+R)ixAjtYQX6@k-=ej_wq9t;{3q5~mrBNT4Yi&h=sp+%6)l4sjr zFQP&X9b+eS4N-*w>Tz!=9q2W#IKb7FAiASgdP2=81PH>nMztWgSOhGcD8xS&!QF~+ zwS|DOu)hpB5S`BOL4h|AZ#p2Ef2GX7LbENV3N%aV84dLye0T{J7=-zvVHQGu(;yHD z0axab#)NNRkid^9Kk99S^Nd1Fp?C1wTis4e$M9Y#M2Ki2%YhO>OGDmBVNS#kgn5oy ziePh-p^hTp)1T)Z4W4!omQU?aN)n`^_uwQ*$>Jyh&~ns%Z}F2z@(}$JexNHPBe0Lv zEe>>hJ4AdC;rVmneKUl3-Oh!M`Ki!iFBpOTK#?f^2I8XtaQAU>JOD}luDv1Z3mWj= z7-&NA11#ZRID9NXnz)!5e5b=*bNC(seZ+)5;$T*g%7JedaBT+Z78pzTG!vd;!Ci(h z4bfl;D;wDS1|A_UNn(*uVPtofigr2>E&u!ZTRAYEB=k296AiDwwdns9_TzJ4mLAYZ zB4LC;FGW_tD0gJ;TV-61lrPYWfTVCRo9L>9vaG`R+>tnsOd;Vi7!e|?Xe84mW7)Zv%~J~L4(Q8UQ?By#A(6)ILtEUpA3Wz&@i z1zBtP8|)( zbg60CX;UcU+nh9; zX}UCT7Q1xX*238dtk1mbobu(G)gSi-u2Z?j8D$onsgrbpl1BnT#WxA?Y~V-+F%bG% zN1xJ%=q;7zpX6~_d60Dgb0d=p9rS<-r8h+*cW!H>-r>fbT>Z;>TZiwf4mhuWmheHh zdr{m8w?Y@fi9VDtK*FP>-r+c_H@Jd??y4ks@fob{c&cwSC!XG$&_IvMs4Fwf;QTSe zn8~scH5a0(sIHdRXLF2Nq7+M`EL0xxlU1V zfDaCjrlqCPVxu{U@k#L!$-*5j_WEjL3NpBeXWkOh(5SBE! zPp~CzhS$LZ2tVRy$u&XBb@^rm(5$3yRFO>dK!mH~_-6_U*4CW|Gg$z(z}&vOJqoOk ztiGmNGlQ9v)o<-9#(h05x!7l&v+*0=w1VKfi?1(W5jbPkq}1aFd=8F1qG-O?QhDJs znXy}Y)qntv8z9@KbZ;fB-jp{>{R3V<(k)ksM>T$#B_uNzaEW zhuQ?Ra)WDkIM(%_XVJ^N$G8`ow{Oi}+M+NzT~0SOM?R2VbNKyl^y;7y*E8m%GP`u&&*+a=f9So$>Wbs3 z(5oN4847RrWtuD5-X5awKcPV7-qZ=sV;B$D%#D7&tg?Os{$ShP8%mLV3XRQ&-RpTS z%ENufG1V7=T1_(do(7#;m13uJ{q?O4BbxHE7kigPyqb0QoKp59pPXHbBPV_uT7Bm3 z74HiZuAe^kuMp$K5iuvCk6w%07p_#U;IMtX>`dM-$E^CCblKTw#Gv}jPkUO`Hv5F$ z-<8qwh&Q?Mzzz0-huJsGOg>&M&So{vj!%i3e`{cY_Pjc!aTDl*V8^Y#hjM>8D2Op# zc(1>S*1Jm-OTS+Ufm{ZtfpC!uP-Lqtsu3zvau;DC__O|zsTF2(G$hIDL)(vV`^Li& zW+#wu5fTB9iUPOCgX=F{ssun4SP+&Bf@MWmAthigyrdK8^1CZ30qIM1Ktk$(1nL0B z+>V#;6MOcj?Ya@SUC`5$dGOV~F@rWZ_A`oU9P6|FfUKo9#r@#asvZOGTEv`CyP@>b z^4Kcb(o^v&)=8foh|kdwHJ&&Qn|-R#qiu)Fn0yu086y>iCOe{R3}L zoBzzyo!Gi#LG82P4JB=NOC#=A=J7L|t~GfyxDVZ`Zn$M@R%FiOIpLGTcAHMW9=JB- zXqus6b5m@U;lg1H?Jc}3>t{I6{#D_p<5xC2nI3gT6sCQgBc7}i1mb*qf}N;7DXC_M%! zg0-0fwxAQ{Kq#TU3~!APgcDs~5R}(!mke4(cOu zMA4`^T_#ka_Kkd%yLn}uf4Vm9@{Qz3-8D)pdew85ta4nDRg>OhQ6(>oHq5rQD)Cb6 zv`5H=Fy7~m%=&@uc$<^rCoSugYi)4DNX^MIu zMO&V4WM>pJ#+@@zAv$jC$`uc%wNxy8?P`3lZTQ8*tQT?m#g9r1nl9dbtx~eeFmI)& z$_S-b^0TiEtYY-J|MIxW`QY`xxLYZnP&{^GSMj6WH*ags`q^cSC1a9-_SCW#gVuY) ztf|o}cL&Xmii_X6Ke@_YMs^EsWN0g}Q}>Kes@UWCrhehn{_&bwE?ZL{*&FdTRfYP7 z=T_-(%=2<elXilJR!Q@_yK^ZR`6wB;BY&%yNT3Ik_P2i-_UL##9 z98a%F4OYw<8S^oHL*?Pv*a@e7lhlZrZL=eE-Cq7O!GU-}(m+ z?S1x?Mt6wfp$)xuZ`)B!ww8HiU7w3yb|>4 z+psZj&(m$U+BPya#DyGq{xs!7t9zNlz%>yC3CoE`r!{WcP>A;vO5=7|bBI~>^!)WZ za>i`?FwD8hKlS-a`MpbL%$aoRd5K$=|EiX8AhWf$IV*R#;X3}=rs;K7hJ#QK{rq6(b{*x z<6guqL(Q6`;3<{-5ff*=7?C$+A)z*Xu}iZ?g-ZQ^azC4OPZ!Ky_DqvyDq9iWSH`27 zV;`Zh(mX_NC0{k;s$g0|q=Iv%+tdmDR@HcA$awF6nQW5UZ1-~7HGP{q)9phZdwX5+ zbu195H4_50CMk2tWSlNgy9;SIr9Fgv6KZE5=>!QUf9abL-~qBq5-9+XjeG&_47{}m zm1YCdEG~L_kRloH#yRoa?#{Sj56&k{n?9>;nvU zsPRF->ptoXc#)LOpfeeCx*1_bGiNf#5|kVg-jdJ1QpmqV@X!Av%hJDKR1P5qgXRJI zQ^!AwJ&~70_4o6my7+lnJ6k!sn7Ei(IhZibTwUn;gdTd1tlqzUrRyIZ%QJz)L9q!` z*j!JI=J4_bD$ay}@&?>8cRRRcOlY1CXE;2we6%>nO*#rSa?4ElN0=aP8ChMYTZ+X_ z83H+F=vL54R$$(;2&UL6L$?rL{@3*p$oQ8F{Eq&fBKG{26nE>DF3kOVMjn_qQ;i;$ zTX)wmyobJhNl{+TRU&A|wZS+0`#!ikJTtH$+w5iF$&p!eJ&LbWBexmNxAvIbOXK$F zB+EmI@oxQ}IlSB?^L|>JUP6A=xFz#8Q~NjDty5cKol^M0z+P=;lwR9Dr4n|?6Hk@N zJ9yFKoj$idR(GgZEn^VPcC>Q1ZDs~qc)IrK%ZoieAm_B(DCHFid905Mv$D)lD7{gMyv z7pZUL&#g*fjKK&4VMXp2Lg;>>3s-pl!W{2XIQ8MFn+oG%c#hq}H zS(x-WW6Ff9LC(Y6Eau<3%U&aYB5LS7UrP2eMK^Mi%&93g(_{V2)`mtbSVrl4u)yu< z1@nUI5p#V5e`|QXh`y?!!YuU;t#$=d+xfubp!-fY11e(~3;LXvZ_dBsJy)TqRYz`# z#;{LeS9O)O^cNI9^dF`E%B9!wF%RN0Shto%Ha*zbbi1x@@GqXl#YZ$7{S&Uft+fsb zimzgndqr$-xjOjauE3tfxli-2?H=%I^j`k@@HzJxK@Clo*UweC*YHlc(hSLyXTNMr zdwC3xR9dG0^7q&J0Mh$cS* zybmz{nVGX#X!2u;E}7`^J5SBuoT+q_%hP(zv8Fz2Q_p+zeroixm}LK+S2rtSf*Bv0 zrbKxR3p-x*hU7oWay<5wRYJf1OTyz8qmZn=!<1CrU1i^KT-WfzwIw50Oa zEuoj#>T!lAwBP0C9I9ovxmFtJ431Pw)E+da#DhEAC%i25W7@zGF9TC{9-iaqY5(&j z)wQy=kyGD9RFGFVXTP}U@iFev>N92AUS$|5(qG>4l3l!SmOSgp0NtEz1pOq~yI zZMnleT!>dv6_!q}ZY!@i?HoF;_gY-WTh~)EQ$2>6>i!>^;@wV7e~T%8_4m)=}Apx@uX*N!Z7>0CcUqe4JLR#n&$w8<}(G18U7N2zp#@P z&L>7l=0C8)>0g~12bWBPXJ8$ltKRym#uU4gxTI`FJSgLBhF-_<5ZWis0d3f^t?`JZwcn`vPu&&L8Ci3PL3xkH1@B2up zPuRd1W$-be#Prj?M+?jjg@>)a9cbU!e128LqIsVugipPDe3a7SA@{AG^&K^dvo3Q` zY}MLL8*ScC%~~;G(c~?$HT7%X>9kqiSk`i4v*L=}!o%yeiz$xN4(!cYqiadstN)1m z>}|`@Y)+8AY6i_JFm>ak?Xq)JXZJqH-rDQz>KiIq&aX40sSSNoVd`%%=Yi-Y0QrNr z%x_-~TX-*dmb+SkfK&sn+2KMPyshBB)2!I2rwA?vIawKF6*5Vitch(nA9gZ(W@cIP z5ry5pA-`8uZ@yTT4}LO!PGR$2Psbl~bQ3iV;=zW{e?V~ES1ql{|X*O1xz=C}M zlt84x1S9e{fZ<8O>87yUQxq3~9IJ}(i$u~MMFMB2obY=uJJAEvqJq%_<{h$=(6+SH zfq^VpQobS~kFt^F3aAB=?|5#0$K?r-Oy={kAhyG$a-SRTO8Y*TZ)qnOG3jLTZZau2 zY#eu%Yt!EBQv;f~4l%tiufF>6e9>XTKCfoU>z-j;vf`n~6J`|kv|9U&NqOY3cF+>6 zP)j4o;*v7yT_Q2$sIAvZ``z}*#@6nSY#j6rbYhOplX7tLBqj`(;k zXEU$m9bG_H1{+dADAh~9Z;y)nO5K>S9sNoId=#NA^*(@ONx74M;S1kUKm5&*gdHjj zSLWFlHuh5$-3)J9dxckyH{e@5(q^ic5&ZWZ3Lu%%`A-Rc1Hpet@DEd{3!29!CT3CP z7T#apQ`N@2rgi9=?RL+VJX2QBv?{2dR!Q(z{s2Rvd&Ys|Y`#TyU7$k^$FHw^NY!(` zrTiHqQhaEOPXj44uEZ*1LPvoF{{V7&Sw&`^OXf1{T7z7U_*I0Cv)S_S#l(_##_Q#F zpGrR!RiL8enNP9pJNLxU(4UPee;!^W+c#l-vrMek3>!*9YRWbjucr!=1zMTLZ8?|E zR(ziA+IrCE+}Ya!aV~NPdYyWgZF$6N@PZ!iCbq~J5%UV4Q;s+~IM$vTbKq2N|M&;P zNW+pJ@9Oh&Wr^Opk;?PWt1DIKRlE;eHhSmoqxKQKm+EQkZg?`r)~iLMSwZ(>+h&`c z&bvSV?r`PF@|RnB%Pg|f(l^>q$ax8#6&{p3ynWgMSNdxEy?%vd=L{ANij9-Y<9^Tx pc5u6ouemr{an9S2Epv)xv_?mcTIBgL^_{W&xy1R~M7x?8_J1Wj-Ddy* literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Identity.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Identity.dll new file mode 100644 index 0000000000000000000000000000000000000000..11a257e7d5f48fbd806a3fa14d9390de4ba5b5e1 GIT binary patch literal 216960 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 literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Azure.PowerShell.Authenticators.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Azure.PowerShell.Authenticators.dll new file mode 100644 index 0000000000000000000000000000000000000000..cf88b02fef1f7d5a54bac4638b934b25c8bff4a9 GIT binary patch literal 37256 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 literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Identity.Client.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Identity.Client.dll new file mode 100644 index 0000000000000000000000000000000000000000..3243f7ea554aa660a68813863e1c54ce4bd1ce61 GIT binary patch literal 1377736 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 D35!!#b*+qiP5n?Xl?t; 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�h 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 literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll new file mode 100644 index 0000000000000000000000000000000000000000..609262ff1207f8d37913773ed1e033d3f6dddde2 GIT binary patch literal 701336 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

      Qerlxd~#h3kGBusoeLM`im9 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 z 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 BwI=`o literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Azure.Identity.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Azure.Identity.dll new file mode 100644 index 0000000000000000000000000000000000000000..11a257e7d5f48fbd806a3fa14d9390de4ba5b5e1 GIT binary patch literal 216960 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 literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Microsoft.Bcl.AsyncInterfaces.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Microsoft.Bcl.AsyncInterfaces.dll new file mode 100644 index 0000000000000000000000000000000000000000..0a784888baf18341861adeed296adc47cb8e153c GIT binary patch literal 20856 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
Hhsa+tAL+i>o;!05V9u=LSd-%QB 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
xQDyb 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 Hx(25)&r1zWlp8rmwB)y2bBC{Y=)s|>B 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�aBICDe?tstk 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

ISmN)TS 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 EA7PsUQ~&?~ literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Rest.ClientRuntime.Azure.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Rest.ClientRuntime.Azure.dll new file mode 100644 index 0000000000000000000000000000000000000000..1d99c70159127240fc66dcb4bec5e891d960a1ae GIT binary patch literal 97872 zcmd?S37AyH)jxdh(zlmcnC|J>hgpCbF4Hr^GQ*~*EaQ#~5f>B<=(wO@>kMe1r^yfy zV?-i~3yKPgMiezDMoln+;u?&om`DUf#VsL;C`mLi`2U?#)!lc7!I<~|e$VrL&o>W! zs?JiUPMtbcw{BH+bHbU|lSM=}KHq#p^dwUL8!hnLK_}R`mA}lTb-`DwpESn5T0QZi zY3)^)wZ$)Nn>wTFys4L78lPEp?)g=1vo5Wgc4<}1NvBlJh_{~Kn3EIgr&XVPB++=o zqUgC#Z%oy;i~3Y$8H0#UHi!a>dgi6bS0UetlqgT~rm~v}Y`^?%03Y39CCN}Dc40>F>)6mFb({tspX zpK>DX1y9-vyS;x^U^lk4x19%~*ajQP0rEYhp1;xPuEw_Wr^g}4wzAFa13KdXxv|Xl z{*7e6;*V`J$wy0nN_5dHL_whveLcyb6%nH4(+%p>v~No)Ot+jURF^-8H$z@w$m+AI~h+6>=uLNkX0th+WI$LDxO6Nk%uB$LRB|XhW;XwcP1R?~op;7xhSephxPHJyKukk@|U$)IR>6EIX!0>dYRg%X_5$ zx<~3qU8xmjq7O%GAJa-o<^eTIOgq^ZbkpZzrU{w3cCv<3D_P4)ygy*w#b&}q+K^?o z4?vn^M3F=tqjeZ(Jl;kk#Xt#1$V`G3ijW)QBK49lNH!pK5{zX<3@|a?ViD?Kf;$kv zs|U{n(Suo-^$bRm#CS%&AlZb}Nie4Lpib7q1a~Mv-En4O7}EG~reM|#)yjNu5A5SV zGr_HH$eRm;Lv4itx~%;W-UV)+}Ez|ZpcvwVYBXlWot(Knvc~4Pu zzwCVUdz3w!jkK$ zpX))|t_s4g)0uo>kL0%7S>Oy7I7$iBG}yJ#SbvvwseGAeaaoHZgfgYvNolIjJrntm zlQRAp)_j(b>Ow^_P6oqNNBU5W-^t+exH}uElVD8s9r~I3jtQQ=vxwIf{O8^eJ@Dc= z5NQ8COTjC#`fT0Asi0uY$w=jh)L9PVviP}x^@BC(JRqt~KKB9Wtk2O5Zhb?RTLzl$ z03J7(2*{uIe>BS~iWqJyEA;#0=OYc-_4z3WxW(zh4kjQje-FwB(&Z0ggBoYaR2wgV zT2CAEJ*DDoawzsacQsPDbda(Gh5L=V6D?f>k1-VqSc%Cf>XCPDN}gLR&enzg7a4eh z&VY7#$+=4%ScTwo@X z$VSLY&Xv?o{!mgiM|4WQAUO}IlVD8E5tv7Kj$ndkjxdS!W@)`YlCoBEzNB_?fuu_B zRgy1AE=1}i7*l#NzF995(t6AA{E0ztw&>kokWW-*#jl2l>0*q8;;*q6uHhVpcPzBi zs@+K#^hO>EVZ>L|l2wSo#m_OeFGt&lsax8;NK!j_ouuw!B*~vjz94x$QYXQfvM;FY zV}g4FKppgzVQv|OG#7dcLztJ`8(Ds*ueK-zL+VQ`cPR+j?Kd&m-}WY^=0N;rApSaK zqfNma@_B9SrERkA|#q{FpW0;a!z6}FAE)~6kibmhhHmKV9p`z;g_LWh_rt#fN z)^{z*l3pu4W){Zr1PR4G#%d-%<-#Tz94xYQYXQf>T8TO?rSEb#|!IefWENAqotlO{wl7j$u0`T3jI~f z(Up=9`Ky+4-Yg0^JPW!%gC<169<%_Vl8FQu$T85`Qw(I<-(R&>FK6SUpe%j_gYyBj z|HdJ!or0d!j{7bJ#qr&v?tuPmDAqP)B1HN#)<;*Gu~zrim+9Wp66sKDN@z+Z&JL!1 zpq4x`)ue{rijsP+GUGrG9AM1MtnV5+Jm@5JQgIW}akCmVrQ+rR$rmIaMCv3MQ*nd2 zl;eg8DsD>KUO>&=yIf+jxTiiBAIZ2s`GA%;>Xxe>;D&ogl!wYani}w1(hb-8(!DSm zGui)qz#p#FrMvJy4ES#5>Cy-Elbiir`zbxdQ~iYJm%Ib7LF-ff^pNBWk`E(w5{#*S z%2EBqgj7GhikiFj(|?#_(t!durfi668y=B*)$`=%k}pWEMd~CNQ#Rna#<9W#&m3bA z7QFIjx{rc&fSXU$l=O(GAEhaeLA<`mgT&W?vZxY|($wgUPXMLsD}c;DXZI9~na=qx z)5!mq=AW6}y_)imhpuL~|BE+%wO{g9CZMs_#9G9bRk371C`u6|liH4zctTfEfsUug z(QUk5`Gur*@(D?O$tNXspF)!SrQ{2eze4IH7*lbEH4n!b6Wpf(@W@H)hZ!4`kCOq0HE~SgoQJqRbfj#uMPt%)OKbL z#`lX{Hk$3YcyNc}7)K$z<>Hyx{tB|$u_GP7m-rhY4su+K_%70~3Zuwzf174tr4BW( zF(cq@XR&T4W=5Oaxl&R)d5@&N|3mvCT?;Dyg0Pqols%pCncO*(3RaHNcxaE3C2_#%T*hh(8Y&mLVu0c??_oI>6g?_ z1|;<*gOcJ@BP1EMc*&A{K{6YulVD6$gaOCSWI}53!oEBY_0;Nma-^u0%$3wm_L9_> z%##%LgjL3uj7UaRm@oN)WE82BU`$nr5y%xXL08E2al88K`U<3^l`NFhPU7?se)J`= z&PIy*N+hGIDV2OdvJ9z{U`$nmfymV`A=54&9cp5K7WK53gAsD0NcC55;G;Vs2nH_&6obV! zr?C3guw8#**!CP9jP_!gz5jYw+0ZjrP6niBVp^_EP6XK2SfS@=!;@9|uqT@+#?&LL zKgk?ox^*aq&4HWXrMla!hOD*=czF~9b&eIUN78l$2qy1yIdSY0g)Ai|hj3b~u}86^ zw%~E5PVOytAVky|*>&*J0K_rZwLD#y9TgFr%{-8%<=PP0kVdWeASkKKYBHmBmOB{v zkP{z*WG*7hu4yQ$or_?!_dDkrI9zA~qo$KNZWRVpmcKsRA0GQHsgkdbf+`PK*u0^Fe8s3<#L46+to} zV0Kjm$)pzYU|>2_49S2oN;mQ_ZD3L|U>vR)N2C~%0b{ggj7c#h1IAb;T%k{=+s6TO zv9@;1_7={*%wYu!u#i+1NCt#hiXa&f>Qe;CfPijNMI-}4V~QXd?9KXU6JiM(!)BL2 zX+IKGhqfFJ7kloF90g*Qe=a5r6)Tuy5G&_%tQ-wiO(%0)I5!qQ7I=27C=fpmnVg^# zG^6q3k&VX30|w$J05-h0GZd(I0`U`pY&YX4A&KMqQ7GSzm4)s21kU=xKC3au5oXvI z$1R)?SWLqEA+tx$Y0Od6o_o5=kK&o>43%HUd0gCKnKO~NXK}tTIT?wbEYC)^ zKH@>#b3ln1QS6KB(>?7p;)6nr>m7YGZd@PI7T9lghR1h zO?PBuV&hc3r+yDQ*fx1YhJ5iU?2EA$KV<()OLcvYsz=7gR4A)E6Vo9Ft3DOQjSe9r z>@l0E<0Q#|a9)Za84y~TfcI&Ouzn(ppD>CuQL#qyb5CXCGE@H@lT93fAF8jx7A6aN z=obLx%Ox@QBIG0hyfS@qQ)R2VlofiW>@<}178`$%VnWXpySQ7ibJE3d;E*v?$mvoc z2ZzO%pk#f(^t&ABb!KHqW#AoLLsR~f34~Okwa-M(odu8-nu?`!&>NW2FpiHyu-2cX2T8Y{8KKB( z0afNQSLJ)Pare3D*5j4q3NY*arlUKH$86oBy$qQjaM{AWlKJ_)j6#Bnd?GogFREtQICX z3QS)Rk@ZG)t}PD%EY&aMC(Z&G3q?Z}9x{i7qUt&55R_9_X#j&)WTTr^rird6T~(bFQPFQZ;7$`vIBTnbjRX%axp6y zzYD20NtrP>2Gz2NRxQF@=(MkZR81#y+?B{`gMTd9bj_KV%MM7yA;>Y2JMDKv&P7+o z>W@*6^Efv`wY_WI^)L^x($xJ0hrb085i2ER`Mvam>S%ujn zu$xK#z->7}Z^<%Kq1{T#n|ZM9*O@99Ud@MB73r?X?>k)I>sK3dBu-vX8l2#=-+k^$kd6hSf|tVCqQ!XSd6K@s4&}~WFh#C?*{x4=@6b%p8^rj`d_j%Cfra%nIp@Dw*6?lruP9e z{wn~}U4MXFVK0^wx<~Hm1LOvYoX|aTzlIz($<)fGN>_c1h%#%@SUloonWF1|rYHF` zMV?vR=K7Y>#|l@_3NpT=uPjG1LU#@;r7aOjFOM?@%7EYR^Nl8r48v0OFRwWK(MG zQlk}r@moZ3Q#{=mC;k#73kT!ECfn}BUj~XvLs19%b*5Ia+kOCxb=AF5wcze6T-R^7 zTuNMP!=V~eO*hPDDmR$X1ou%EZb(O<8Rn?Bm};(Hso3*O1mVwjG_9qNzUN_r0M9^obSU0&y$; zI^f)asb@(eGW#7Y@SXNIz^LhD4sYDXTujfg_*)=`Ovf#SgjLtp)h=|~@4(kgwBI7^ zE7Gt7>V~ZqP*8uS75_a7NM~2pHWgd(w}H;Wi?zX(6hUUhkD&pIMNX!C-B`rRnezcaabvCrD{6w>yFtb_FN+k$KLpJ7NEA1fdRbboNXeOgJ-TEpv>lI1mBnVD z3**8x!@}AwW921jEAQ!UCC;SNHW!UvAZ#`?$7@Z#?U5>O!rjPBBebBhG+%qQZC=_E zGuXw%Wf=zcoV;OiFyrq?8-L%o8-I1$_V>fOS8e{8g}7Vjq< zG5G-#?=s@Gu;0_FqDhUIs8~r`#=x+@=!|^4*?8oJtkqIpW7T|zS8Mq*6FfNdSUJk# zI4)@nS(W`7eO6^nQ?ug7KZZ41=3!W>txZfeq56~wuV#FtCRH`3+Vlx(z~dU@sYKiH zZbr07J&mkc7eZ^jYu(E!KV?6G?nR8`8R{YbDGFKgd=15hS+j6rXw>&stg;AL_cF!( z6vebqSTTn)Q<1D$KY~m{u{Dd^(2!@%x|P#_HES8tdfcFt9*O@EO7!HQE6Po= zFs1(p=y%*dagjX${M{i-&H;JP&WyT$2C+W9Fy{FKYZJ_|F&C2zf4za%GO_qyn9*$m z!Bi7o1@AD-XEk9*UXR<3N1gG%atWvI0<%~>c-3=FnxIzM@H?;77ppENv$9~&P_uYa z(Xdm^%A83@20=$?(rA40@F~=J#`%L4IQ79NcDPyDx3S5r?1!RN*v&i-wb!*x6Brjb zOJG9ae1X>p{Heg30L?`gz{Q@qTiJ%!LjE2Y1_wVdX0<{l5G``Kb&>D9foI?-U(+2W0$(?q?|JkFNyXAK#07{BwY8>_~lq zwBZP|uqGs5F*5_neV~}~#j*&lxWk^UQ6r!lC>8}D|VJ(hOOMMtQ9lEw)++MJM+7e z-G73p?|$dfwvVX<{xycFrdjU4n5+E9$BKuF|1d+b|FBwM{~aB>$ggfHe$DmssZPlK zH?rNE$ll|kW-z%QY*W5Y7eN!zE3usymb~K)PUH|D7Q324!9<$sk`{OG=E9DtylttEY}jY#L5ZjSi!28+j=w-v~?n4g}Zsg zM;tH*Z*{krVI_ze8x@%HMKq2X_%gQRV~H7NAZ9r6G@MJNVn(X+yFN%L562y3yL*^} zNa_lD>w<^5uAOtu1lIr$_f%0Ti2Phd{87}cMuL1z$G_hRfSx(AANkFG?1WMj1=9*Cwb7zAU+F6vvead-Lz7*#7 z#B_%0jcGrbK`PSvCwJBF5MG7pFwsAc^_z(#67+M6-%QNqS`t45bb~2hck5R!gnkWy zZFY15;eLg^u^neXv6)~7`jrz;zjCQmzq;oEN!>bFgGcaogysG6cgj{uiX|s83bA@Ve z-D{Ljj8gmTe%WXD-gWTH34-6vMpH6(9o!tCJBxC-XT_o7$)KlaGt^WddE;mnT#Y9k z-;`iSV9=xql&8=++-0K|fE$crHX)vjY<7qe@J5==%BKnhC6NLvAn7 z3*&i!`8Kvv!pQKf9YLxe2&@rPT0SVId|Qa8Gz3*_$L*{+!3>N!PWBhzy{Akb2wVz! zqM&B`18xDA_G6e8BGX<3z&A2tNj3{EUk+)x_TiQ=LE#wGq4?S8jFIy=X1WpMrI0L) zmjUMcBYwA>Gfu>Ddn3~@Mjkj~de});fTV559h@WB_IIJuOfVzgF*`WjU+}#y#yf5$ zbAA4>&#gkv&*oPnqs$)-Ep8v7do077FxIA#fag1ga>$x$BezM;ds76ACUxkGZeeH0 zp|4ccH(k{juIel}0uxe@!${gCeG&G?QHI=89KDI&!V8*rKDr8(cZs9hY$CV^adbUc zh>>fNWI0EIOxK`n3~}}WJ_{}GkQOjg-vQr<1&#g^k=qZJCu;z(l~Bt`f|2?oO}9T% zc8`mng9r()eE^fNIB#PON@u(dG~AK^^vl=I+TH;#>~~Q;C|s@VYqb3tWLfj&nCq6B6wXv9!WEk zhH^gW4nxwgWoN`G9GDXc?k}8(xKXDj%G~%Xm^?;a!x7eT9jbDNqkxB{Dlikwi;n=W zFg_A6KRc4`9>STdNS2H1WgN!5sNlXZ!&%8uAekLM1s2J|MGp?+J?IQG!HoPYvxC$9 z1z1C?MH!caro*|I>H>7E>JV|!5u&fVg};IET`U|8vBLNm!2Dj3UhY`V@6+y2HQFB+c!f-dzvWR(E5pMrdi9xwASK_M^x z{}JcIPJE)`3k~~n>6O5#pvO-G;N@)rPiYcC65HVd_jGX7@-{;bxMzThwfY#mmLsN! z7ZUugR*Q~`AWi-4#N34U5^^wURU_rK5%YLWb`EIM@$sz5xYI3nlG4rR(Y&-7Epy=Q zV4>BwAmL}JxCURnUj|%-+m#-~8*cmMC+uP;NvvUL2IW#*ODj^Zfxm z_q+zDxLE1O^8IonD6^0XF2Y-lA!{hL=)pG2-H=9q-ik`RiyYPDKxTb22VEH8E|k_u ztHJ@#>Lx>0PbEG_=08l5{9P8}Co#H=_e0YC)El`NKAwKM4R&;SRxy8!^wWJ{p`TVE z$#O=%2wifUN58*dKPOb?o(nh<4oJP#U;wF@KjfDg;{9pjy+T|8yuL{3!NY$tdZqnr zfFzG?P1dz=(IWM&RZM#+ruT&=h%z$5(~Im;GP|?&SY)3Awkh8(EsqC`r27X%rqUJ$77K<8rY7^!y#w6v>Vi{aO?;@1bkf?ro7fnV3b zB?s~A`iu)vQr~GV(4I+R+{+iv4!J2U=GVOMvrl*ll=ANaJV@+8N6JOt7JL7jPGj5Pv~$I2 z=r?iN@!Dxjh0{3kIE{;Rb($!VZ+d#2mZ9nqi%BsLEyUAn%g(glxXvzqI}(0F)F9r@ zL%ktqB*rWrC#^tmikZ0@-hMtPnADje-vre+xfDSLqJE5v#04yNp{K~9s8}v`;SqEZ z=s5G6hQv%<49Guu5sP1fTs}YdrX!;luxu1R_hxX~aVa1__fCNLj>TdqGx)j3>HdOq zQp-aw2ThkT7tg(%_REpOR}(N5={smaHG7EB!FU_k@pdJXHZ=>+Cx@R;VujQmcHEhe zQcH{s+3(H*wGI}g-oO3G=fSr)kn=u^xCNGbg%akwFSvU{M~VNh1QFY{7vjbH8EzWx z(Sc$nW(%AnFagNFwG>Ns2+lB`WYEKYEGtB?&E=%yhk!gnPh!_SF0Nw+;*Aqeym2WV zZ)QUDcY+e12O#hHKSHMAaCu3V3c_}BK1jL-oS>hK8g`zBtpX`wc5u4C08df%dN2BI zcLAt5LH4kZJuIrkNW3!};3*Gh$o?*Slz#gBtMncvH_fw0X;T4wip2_I`YvpBBc`uH zd)u#q7y@`DNS?0Ogmj;$B(Q_(#22Cn;`MG6LA>6BMAiy6|MF8Tel@rfuRlgc$17LJ z@rr53Hak`Ta=c=DAhzR2;&f(kymGp~;QW+VxE$j3C#+K96^+9?X#a?scGYjH-FTPrEXE+H9%iE>;4(mgRW?O9}Y!ry!>1 zh3kQIofnpX0;e$}eglIWJ%o(;T4E_n+~ko+J05<%8Fcvh79?0b0=lQLpO+yge!dME z?PoTM{d_y89m@gP&lB0tYF=Ol`h?7eZazu?l8 zd$7?x{bk5{`b)*tm2=Z$ldJX2cdA{-NxRm9rP}ouKc7#IFTDBX9$tJD;bPC!v7b^%PRwUtAFF z+Q^A~F`3&nNwUibMn2m6=8|WIc`a&|h5b0rQ3$Uz@>F?RphCGx1x2 zuL;}&c+m011<|h8Iq7%1k-i;JLL-Nu(F5)EC(SB8A>@x|31WPJS| zA*$N74LLLM2Z8Sh+zxoq@x=wvt{t4n7tgs}STV}H!Bn)16VLeKB4}5)@g<5xLznTD zAs>8vy$yw3#ux8FVL6L9d=pJZyC#^4t;m^)w*>x9;O_z5>v-OH8##FxZbL>t47nsf z4FAAs$2)-hF#JARw&N8{OK=fL{4nHnf58t@(a7cSFx<{u-W-Zp>YOJa2P*aDDpmHx zWeeyUUOrEO;vDs*j(}%@66mr(nag{20sba0n!*k8D3}Tb^5u{8gH&1|mg7O1S^j0n zspVgK?XvgF^fQJV+$C0Ouuq3YGJN_W+#Pa`wBUu*Aq2)AJn}IZ2R(rJ6PP%F*uzPJ zk@Nus9~Zf(PI&47!of8XK7dd<^#Oz``U#4v0|-YBAe2bA1Bh&W0P$z3jiL7dg7JX& z0OC^+_yB@abpR2-0YpF@Km^SM7f=TfL3IET^c+A0x*kB_tO+Y7eE?x5*j(=c#2D7+rMG^fc@V{{BCpu zUJ1CPy6*q71wqgLZxnay)yYCmP`+=P?-Tv0(*X%)y{#bDtJ48r>U2P8d^+Hs3eU;0 z08c4$kw^R{5f{$)91CQ~{?xGmje$22jD$%+&IQWgSMRyN7|b69;GKq)r;^lu^BN!_ z;J?sx-1$ODY%1aN8EF5&rv&){pyS>UN54KVz&An4QC5CZbqAY{HGJylR{1AbyVEdA z2RT&jBmVyi5M4V_2J;$lIv-WyUJ%`Z7955OXJGO(+uwyiauf&)yaO&A*c(# z{mXQjvQtd&?`;cn6a-UD@9%A=ncx0<+qw$YB7({H)AqRMBbe%A{Owc>*t8|`b14!~ zW`c#??*YiM0_@GS#!P&`wj)fPc09~NNp=_ZOEPvH!PMQLj`+UJGF(l zVyW{}UfA*M#rx|rd8rF+>}71Ae8fq|$AG+nasiLL+u&$3!3=DmaN?P|xD@oLsVh_Q zSePVVv^eA{^qOjdYLpm;k%n^0GTrzKQIk5@F zn+9|<1Fvo!oO-r)#4=kB_C_3yknvRS**X5M=1ohR$9s0#Jf5+Xc|NasSdNH!=Spvg zd03A0WS&o%cfa^ZV&Elq+~EKtf84X5G z)I*fuj=gA9QJXmld9(+|G(eVJ)$Lb??8Xo_t8}_q8#sedzb>VW4KJC-c`cE_@wSS)Jq5Vm!}va zD;DRgPmc-qsvztpI+aCr5T@Oty2_(af{;5g6@;ool{dKx1fhvU z1tAks6Qnpux~t1YiVQh@HkgXTC*U`ZLwv96fH=eqOM$L&$dRDq(7T4UV1suJtJbU7 zoFW{3U{1Bc#~H$6RD@}D2=`UH545BMU?vpwGl4b9bs0=HfiyEA6^xbXASl!jpnEyo zSs2ekR_aCqd%95l;6P%uDT!a5-qo zV=mrc@%wVfnF)sR2tYmlTaz>*_lUbiw=jE*?jSA#%9|cvXY37!!c@MWu1pOi^SLHv zYQS{c*;Ky8i~F)*;KED?r=I8*Qv>Qv57!}akiz~HmuVY4A>N(kiSslo0_~M>1b*s4 z&8=xp_cqI1uOIF#wBLyWX4XIT_?2m>*QFTNL_hqFAhcZQrAIH_@SB!UO0Q*tWm!vTdGszsB~d_$p;*AAIi=Ul~{Lh{v_vi>0O&FM_PPja1jz z-pXSAykaj{@nT3s-4ek1YK6s1fiy&|Ef|LSYi4CEgr6iYOjq!C%kz^MgV$4RTH5gnFg;q}3;ur8Sfu=SfX+s*&Xrwt;@Oh<`HPg|k1Y9J6Yo!$ z^t0qgNVISz3~1oQ>7-klZf1>~PbQ)(e{H_)T-L7!7QKBf4?fWyyn zACm7iAgJWK1$Y%8Jnr~AWHcWiuw+bdT8j@}WJ!#pTtqhiIaJj9hI)rK2t2)l^G)Ud zh~<;7fw?ow*Y$H~QE!HI0%r(3yn-qFB%dSsCq*(`{wOrK6|4F7l0RQD(v&dgr#Pnbt!{ch1`wiOY(EEO= zz2JuaA<7%_aQ|E~16MUWlw+^z6QZ4c9`5f@ufiJuheGpj=o@SxwbRXTzeAJ6sw)a_ zsDDT3A^NapVy#1;u%{6qJIyb4LErCY{)!~vJSm%4@Rli266tYGKTY{2S1E4{bktW z(Dm+|p$_@`F~tzLw=d^A1%4oKi@*m3-YoE(VwM?G#5!*;WcW@a+xAo~!_~tWZmVS5 zIvTi*uh($9zF&AZ+BH{tYEy(ueJ!^AZZPMkxeR|*!?12p9QtzwzBn*GFhm7?*$<}+ z_v#pX<6_hsq8Iux{m=Hxh^ukUH=wV-5FfrO{#oo3oiUc&UdR6VOuV$SALoy8*;gg- zYKV6AW<49xiV&?vK9{BsxCPvi(%uh6|9Z(!9>_Z5V#x^Uk(JWw9YdM^Y$?MBh4TI8 zOOdY$GUXM(5Y4J!&6Snxjf*7Go%sZ)4w zxD6$L2DVhN#dQrOd-0TBCfM?th7zAqN_Pm>yC0XUp!;bh>L@8~z{9+j)(USZuo9z| z9uw>&yP+h4-wpnSV4c7Uv7&xTuuuIBC8gN^T`$<+80)N~XGCXv6YCsEuLu@JImX@) zYqRj^BN8=H9-;z6?vzvAB@*ymF2hj_X$?@qzy(_jyFH8lx# zhVZVXp@I#?(`Om|l!goTs>9gLG*Yk~0mkm4Lj{{6lK0VJf?X@vLv(~-E!d!6M(b#d zU=3pDuV|cLkBj89xc|hKy(ieqbhKb+NPS!ASiwd~i+)eX3-+b(cG3xgT_Lu7NGAz) z6?l`-LlXoGN$p?IM8SFswx3QD>{7vk#u|5;GX=X{c!kDf!5$Z0wQ-JNRp-&s zSzJROV~PjsXPhUJ*P;I=;kynO2==sK{f&z}k^_uOJXoV~xe=y~eSTXSrVoqXD7ERU zl2!OWmOt#X9`Kuin*fW-78*9)(6j-ubY<>Jz(;!BZ5XsYkKxYn28{P7ss@D(Iydqs z)1a)pzXIm=`WN70{Feg;eHCWO4|19E$6h{AjuQ=ksA6r)B%jD*$0 z$nUTa+0yGB!10mQA%iA^ds^pjhXw(!8qE0{1r8Kg1!&O2VTMg%mj5O%h&-3-3BD@y z!BYDRQtG(yF4VOo@6*x=o!dh}Sn{mEF8~cXs-EE})DHU#R?>vdwISBLO6q;E<}K8C zW9e8M){19bfu)hdKvDKQmirK7&I_*%P3XK#+L)Bu%aqL#)^@vC^oF4Oz*05At*Fx6Y8@1@|@RIztYoP=5U8S&}h~5GH8NxORtR1k1e*dyZmQ9 zZrwEj_RLX1_T;re_VD%~QyQ(cxOO|i`4Z3x-U6NRptp@|!&3A}O7ok|tfA5J)~oDX zFZAwZD;vK$2;KGd+}_gWnkL0)6+-P;TGo_QQ?W(h% z$IkCwJGUsMliSr*=K}?q7X3eAXGZ7jK6f857LF^-)XuT3WDfNF!6LkSY&#Sy8yU#x zi+nL%d=c4Oc{_XoH%aI?lmaGwe1?)CoQ^0W3A$|yEHby<#LZ}?4&ZrextEb;-&XA78ITT(AX`~hMd02 z&W}ZBUyU8ohqa8<*kUPnlE$VDW}fVFT4eT`*Lt4fM#gy>6`-Wr(B^h zM93U$AFkBAcLt8k_0xKd{dwTSxFzzEU@sUKWK|gf%In8ocw~@4 z0lG+IdrKHAu3^bd#>Ikd*4SLp60KD{8!;E4ErQLXtA{N^4cGNoyb*;FGeFmC?0PA; zMPnPJzLWV#05zOZb%zZ}!RFDYrOS*EjUK?fc~qPmF+;RfW529^30Que;+4{sW;XTL z*y$88b7-K(`WaUO8>g{Tf#uRrT4t0`t;QnFd3b9bs3liJXDJQWyceTcz(#A{ z%O(E|m(ekrx1(f$RYnsu@413yMmbH=*rx?~_>HP_6^7V--RMor6-Gn*9F<#1`!qJa z>Zsgm8eh+Cm`5!`T6^`SrGm|;!?It@?MHhwZ&>q%;aVDj9X;L`JT`lLxIbMd*gTqT z6q*C*HjVwBBD@Q52gzY=VrjH&^&MX*i8BcOqT1G$Dx#Btp~%^Ksl zZlDgq=F_Ob+w2B2C5G|^hY zl$IuXQZS{ZiC)r@Z0B&=GbE#BI7OQj##)BcB*B!H;WR}srDZtH(30G~L+MsexkG7} z#(3NwN)wxvPOk4zdU_~h3j?neEi(?K=QZ|rQ66}|)!0vK3(ZmVJB{61+tzCoy{j;J z#vMkV2zE2=%DTGjFgj)!>tyVKvN3eOU^mk8(CcMK(je?bE8Z7n$I|s_ET{Yg`b=Y1 z_SIz*=ww`>V@WIffwEKS=V|PVvPqOTQt{TKzO(7FG?r67mA0g@2g=T;LA>D%E$g$s zD4Ryt3$}zF%NkTZgFe&PVc92_Urs0E1dM12HRfDiK8v<$?A-njlwCp1I09qd`~ByZ z&!OcS8{O~D@*h(6VTwoY-14hvrp6`=-dO$<`V}sjv3D=cUS|B1o)c_dAeo(q{fW(r z2M^}a_4JNln`l$>hviGi9F1a#*7Hg~E5DHj2=)S9+&rk{CK{!&*4lrS-%M|5Y({OM z_ieOYFpdeVEoisG0!y3od*4BOG`6C-1lZp+wxp!0_nq`_jon#N3(Ofq_*)qGbm+Fw zU6iY_&xgJrxQmK3wgxR)L6sW&C0ewCT!l&PD``*~%fo)v$TW6-@NOC>*v)}O4Gq0l z(ODY1OR!l=G7uWP%veQ9jTH>eqgAv}W4&YBLif^QjrEVcAGnup(b#(f9uM6|cWLai z0Y18q?pK&t_A_oA{$9x8He@hv!_VmFBKc8}dH2(k8e`u5w9%twHNEVSTurZgBv;cP zJdzL4`yR;$=#L)B2j~lr8XERsZ!}Er z{b;(}o-Wu+*=-))?(BpI>s`Ifc#M85w%km=sk^H8V>ELdD`KDJS&!4i7RFvMjvm$# zdV)R^Y#|*zY=HR`op_{3O4O~V(=^6Wx1MHbY%*$inr3NiF80)(rnwqx1n<|hP-91e z_iOs8#+H=aYdk}@YV6LEvqI0%Lr1ClmNq|VY@o+Awxapm&<6Uo#yHA1(hC~nDBno0 zY3#J<66;y|y~fUq9vym?c4_RcfwS!A=o5`SHgH<#Iod1OyugD^kB2tVR~mc1iT_t6 z^JrzuS@n;Ho~OJNRvF5Do+<>JA1D-Ft;QPbee^ty(pan@V!lB42{w-&uGkQIfwl^^ zFmP4Pa`Qzx`xvfae&E)cF9R>q1%fRM3@)AFdx`E4OwDdD(Rz*X?DjG(KaR`2Ks>v> zN(;s_wt()dTheMI`cF^kzqhspIvUk#lg54bWX2>(W-=)t4dx4&)TxRT| zk4{dt@8#aR=(9AorT2R@eggA0(Z*qK_x^w;e~+zN{H1e*<@JyphW6ZORPdq%!_|n6(jSW|3%Gt&ijd3}j zaVx%Vz@Fe(@)`GQjCqc6+3XC@F*-HIJioDNPKM_1&tpG zHXpb1t~7(j%^It)t~5i&8eNXHWEo#B$Y{wj0#_-FdD+JOS7&(H#*-RjUXC&7CmCLj zakyZr_FUsA!RFIn`5oPutR=ZzFXN)?GUa+1R|uxc3V=L1WFq zlPZdh(Hi>)Buk7o!IaKYW3FJzmQrJ(mfTLKRg`jQV+S$=-)-XCIKfi6J2MF16~Y-x zhI>n&ygZYJRxxE^AC_DUXwU4ZB*PRMgCwi|1I6y(*L&X|3BqtBci(Yi}J&PbdJ)4_ogZpE9yGOId~~%|8?md^ya~YwYJ^1JQC`6^)d2;RJ(amY7`c%Yc{R z))-Uv(nEzEbgcD@+6BnpJ8Ti|h&>;>0q}Q~w_)#{@6nXYU7K>^^PzINaZ@h0Y|4pG ze#+(cO^aw7FE==X#@f>TG+yp>jF(gWpfRaA+Xxyfs;i8NA~TuRmY$CMo$gdXKKY+a zEHjx_RCnM6fba6O5}yW4wMvHHVNA2e;_Uizi`zTcg|wv%ZbmQ7KonN)}zA~KpXF4Otq#pu0&mYvQuq5T>3cR zF;%RePpHa?Po~O=Po&C;Pom0+PrRzp*Lk=n_e}BID9d-CTICK@tK5NVmD^9Pa{H-O zZa=lk?Wb0`{nRSApIYViQ>)y5io&Wq3orj_`-Za27J z*}H|iTey2baeaG)vPUTUKsnvFPbm9@QciqA5+&Z3>L-@i2Hz>L4ZewE8+=c}Hu%<3 zHvDtCVHEQ)>!2917(g~FYsmK9nhO~{wHN&XO!eyL}!cWX%Ri+rS|cteU39;Y9BAP zPZY`VsC_Z$Z1Y4ZHBm}UmQs_YrIV!;?hvA-lckN5MZQ&JTBTjBBGW1|tG14Zer66q1Mlkz6j4 z%SCdz!M9hIi~MqtUoP^?MSi)+uM+uHBEL!`SBc~*kz6H`t3+}QdefjaBDu!kx8ijM z&z9>9p5->u-*8`KseqKhaInxf8GLK9A4aZ0nU^ zffK9=4X*|FAkX!_SiC#9&$uy`6Z+ctsA-8c+kCU4Dm2^NUeQ0a&ANPO#C*@X1Fyz= zjTM6ihHR51vrU$?O<&H@p{V&nMZ}Dn*H$dCFk51W8&4VRS4W9=-lMbvd+br-9rI?H zXQISAp96&LdrR+zHonmrl^dO?5jQ$v18#Ii3O;vwXsIlRYrO`gxz7p>pW&Yc4Zq#g-Y%%rAwp}2G?h;G{-hH zXY~^g*NcZ&o4GhAo@$j>);yHV)DLsi{z(T zMNR(f7L#}7TTI@6Z!vkNy~X4`^%j$N&s$918E-N9E^Uk1guApYCf}uPF<-^{dLxyN8@!}y!$_1qOQf{-ToGn_w`#$-obA%d9Qw|RoVBn?1>`(slaUl zCz@GRM~A*LcMNII-fNo0v$MZ4KSKUflfC+>`E=xmD7$9xLQtNLTn7y&H9sDjXwL1w z#Ja|28@8Fe;~uu&i2V%kFM}S+o(#=Af~F05HhZ@9&d}Z2OYFggf6p$luC4ewyV|Pj z+Yb0#|6tA-`*8FK>+hAb(yks}kh9n9l~tZI&3>kEK+bBr4y9(B+lCFy8DPDUe@f0& z>(ybCkmp)j#gYM5F|2JhZ|`#vxN8Qt=ggMgA88#|)S2^?{Y2$L(2v5MlxpL;%Ik7I zH6I&%17u!>&ev@fMSY_8)nsD%$uz3z=+I>1 zo!RLkQ%-#6s#R{UloQ{FDkr{|)JlAVWs%54iD%kY;`=pG;(2u`@qOf0xydr!{A|eI za%Y+ab$PuyOtyR}O4T7h1T#`A@!g(QxyiB$vtM6m=G!o>#CLbTvQ}oz?zKQPED{Y% zwFbVQxKwN4n>?+=w_jR`ZxLY)iMub`?5dnt-WuY2pljr&^EUgI?16b3;rV68a*46! zh|ELsw%L>F#^zlk^TQgs4gIol*^sbvjj<#DWYF)gIz6w2Zj7Ciw+dtYio7-E9mAGb zYcPM#viW(j7<8U>x6!|HaC6eE$zGOc7@rMUmA4lC^a}_6#OF^*e{HkZ zG(VsBsXa66)x34m#`V(1P143Sa{qdhv~i8x&faD}RZtXXPz4qEehCCg{>Jj&SHp>XwF8$t0d^2jdf3Je3Th8peSc)1w0gVQXgw3zZt}YEYm?)1pLk%C^v-UR^=vX& z&(|hL?AIno?AInotZi|;+hi)*nhzU!S$e9O(Yc@y}#SMzkd(+G78-iao7TS1YW#)z>ODwn~lDrN)_3V=HQWBHD@? z*Z5{iT^&-kL&|oDZ#$%Hhm`Gr{Pg?|@#g~3vq{2PaRO($SWtU3XrBc^Y zscX4NE*Ht=;z&!Iw`wO%B~X&*NKJe zMRL7JuD5t?yj~>Ni{x~P#!XVodXze@aJ`h;qo~=^XR>asVIh!p$liF8_}V8r_leH0EuP_Rn`iiJn@7+-)bbMK+0Ja6$I(8E zZ~HSV$aL~NhbSZ=ddzcP5WGu!+E&(pQ`wqa!@U)ddH5tG+EHTaIIR&Bb$Ie@TFTfD<5mE0uBqJEO|& z*jMN=x)Av$x*qUQdJ%9Oy#;tYy#sg({T=Wu3RN}Y+k8yFgqo0VmwZCtd^!}AYpJbj z9NkD(-8i}(b&aEY0FRa04TJO50>=oPDsaBRR;`r$MuG1MG)$2fI7Z-9f%61z6!@M% z!(z!X0>@dbZK~ww30x`gIqMy2sq1UApG;0A#k1wJQmm%#S~ zejw2Bu}({1wZOgt#|RuJaEk9Snp-th^5+Tc1m%^gd6J(maHYU|1a1`goWKtRlJgi9 zR$C6&)mPv+f#(VA1owjK`I5g!;Bx{$5NP?iRJFjq0!IrRBXFF+DFUYoJWpV!zApe3+cU|)e_1dbCpRp5C7I|a@YIA7ojfhz^x zBXEPjjRKz&xJw`fxyCAiqXkY8*eP&@zzqU-38aw73mh$Qioi~RD+F#3xJw{qiM+rm zS&z}<)t!J}S6`F$CY@8a0r|7~Q1)ZAx=&R$OO6&eMIhxoM!~+LbC|vh`7`=<<~~OE z^`%~q(HDKE^kRCaz!d^F2&BBn=!kxl$5CB{{B8ZJBtHfDzxA6U`A+0dtm%~e3glPU ztdRT$M)0duDa z>=d{{;0A%a1WqYrnNEQl1nv@8RmAks0y_n+5J<&RqrlMurwHs6xI*9tfx84!iO36_ zQYv056U_pr2<#NNOCXhtyui@{rwHs6xI*9tfmM~FN8m1jR3&8vjutpYV5h(p0yhZU zC6KB`Uf^hf)bBUkYJr^sHwdH}p$qI3xIrM*3SD5QzzqVazt9DC3fv%&T%il>6u3bk z4G_A(PJtT)QXSJ*2;3#GDkcXxB}NY{!e@F0UuS-^^ecpP4AT&VCgksHz9%0Qz1Y? zOhO04CRvh&WH;;Sr`*}aVz|Ng==FH5QGiT16xp!tr{k`=EHBe!{Pt95~>?32}t1Z6FiN&`waoAbv zg7aPDnLqZR0^p_xyn-;6f_as8!P2k;mX7lV`r#~;LD&V$!AzTr{jdVo zj1}Uwk@fAyU>{Z0uz>cHyB5QJu|Bz1nv$CxNbcy4NWYJ%H!!vL61qjW)x5Ea5Gn)@@jJGYT%GqkshKU`6t;)qcAU+-KG?(R6MTYe|* zHfxNSSnlr}Nfdsvb#uhTH);d-M_#vq9jKHK;>mq2jNC`sQhh49Tc$NPRbf9|&3||w z0vzoLzb80a1kV#Jfx83Y`hufz{22IIh1hVo0pMj7((1zv!fvVx5RKu6uqJRr z!O<#kesj3t7%wVte`~mr7&9u2fc9|fvyN~ZU}slF-zdSwE+X8<7*8r#VB+C6!G5j^ zBP0=SGw7dqdjX?L1-yOWw!m(!3fNQNw!-Kl{kR|8HnPIKzTYGFbsvg&pU~@IM1r#a7|`44f?h zSA{PYromkcd@A+=y9es$2P*anS}CzTa8+zCTB%~6qJ1j%8CoW>eQ;Iy#&$K_ zukf{ogtx8N!2bNwipEr{JpCX`Iu7uUye?dW(2F z{O8ba747&V<}zFr-dz0Gu*x^9k@Rk{uZ!E>o5k=;cvjcYEcjcqZ1~%-9QfO? zJowwPq42k5!{KkoM#A5YjfTHHyBq%YY%Kg8SONSUSP}dk**N$+vJ&_^vGMSCVx{m$ zGZXyLxYIy~w=*p8$1ofGo!KP#JF_Y9YuQxzwQM^4IyMu29jk&rmQ}+a%VxnJ$7aJH z#~y&c3!4jn7wn_!AOjwOKc3BlKY=ZPKY=|Ce^<5${;oJvPlws|3HZCQC*e0qbJr92m_5%Dp*-P;EWb5GX1uJT2xSQbb!?wWRhrJ1Z8>FXUgb!tRvl4LHuQ&rH zLz*X@k)l+3)pS*wdc68R^#kfX>aWys9%DU>9*=u$@;Kws)HBm_iswAf6`tRF{_NS* ztF4#TE75DPm&L2v>rJm?UM;-`cvpD8?(OH(*{9IwVV~E1w)@2U&h~xS_i^9lzR&u8 z>+9iH-!I;;w_l#0kAHXn6#upUJN+;E_Y2SmYzfE@JQl=)8wFPf&k3Fv92YV^q&nna z$j>2XLVAQ&gx(kSaM-f2O<{Y&>V;>A-yQy1_}k$hhKEEnh|olIj_4UNEMjrQ(-AL5 zT#bm0>>fEda&F{;$fqJdiPYBXUhmI(E$T0>@82M~!R!Vr8?0;aR)aqqgf{f3qIcQE zANZAxZs>=%=TveGJ(3#M!<%=Q@yLu=_{HKEhhG=`;_*wsuPc7t z@Jqz6JAOUz>xo}4{CeZp2fx1fC1I{g#ypdP`6U&6So`ScWF zEl>AA`zW5CBEGjApDg1;dw6|Q<#4JTPM5>!a=5=7?k|T2$l(EUc#s?(B!{!)aF!g- zmc!X{I7bfW$l*LWoF|8e%Hg4Mc(@!ME{8{=T}1cMa{ET}_Ia?e^0Por$J;Nw{Y7$o zi5x#(4wuU5rE<7j4wuVen;f>u;Yo6Mk{q5Qho{Klsd9L#9G)(Rr_14)a(Jd3u9Cx5 za`-K_1aAj=K+22usqv)#Q%lr;(6c1LXE;HO_nWUA?=Qm#%J6}5e5f2BE{7xK^hi0} zP!2cbVaA&9Fg-68^cVd7JjSpO@Kbw^VX^q>Ju9U*JRg)Uc&?I$ zd2N=Kc~wg9c|9nd@meMMcvngty*Eoa-VaLmc(0O{;JMwqrF0a}2%j;mKYkYc7W)`g zdA^a-Sl`L2C93(VYrdc2X;g*zZ)ewhyQ&}YPsFbWe)w9>|19c~sQ%f1Abw}1E&*%Q z2Lsls&j-AY@auSXRht46@#}$KSM_rEm&3n2@TB_N!0YP9K_}H6@SBKVk6@igmw=P% zr}5l~-`l~{JYEZ#=AjCm=Ft?t;h`thFNVJEG1m8_`WyJY!cMB&;@3Y+B`pj)?D0*Q zholL=uGZlud0Af!|5>%K9hOZ`Y5MHU_uh z;m8Ij)!GIPq-A)1iQjebEdF}t+VmD%wz;$v$Al(XD@}#Hi}LehwRI&FP(nVEdMD=R zbI&lNt;AemOEH@!87ww~r8hu$!jSSJz0Dw_MG-awCB^EL+_B`zG3bj1Sj{G$#8V3M z^HYu1@=|?eN~zvz;|YJZ+3HR?l#@USz@9X< z!eZd`%rRKY%_ghCNrkQiBPfJKbA_eQkZv)T$ml~;v|tOI#}bc)=Oydk2VMJ`=g!ASsQXeNsL`~b1;(*>KG>>ryrGFVNEg><&{{>lN~_u0J6(@HWlYom`oToH)^+bEOOi)XcrkYy8_hA*4qk8ZiF;mfxHdE zce?}FM8Kw3mxy^JAb3w<@0!_arDmfB#zM#zK!U9bC*Vmn!Xs@;xy4|$Vz3}U zV`8wWv@!)!&QM4r2$7ug2s+aM8CH~BVJrpT%NTf@cnEx7S!TABmlz8j0)u3bL*yZc z3rwoPs)&`EPznugW-29PkkM+xb8xEOroXGgV5y`?lPxY*h}XD$cxp&I#M}n^1IlPJ z+92C<3==C1R-0&G?|8^x*3$}kU0Rf9(H9!z7(EI7T76Szq8wQYaU!sR#$0?Qn~N&t zC>kOt=XPa-b}WEv%5fdUYn|~BadpNgiul_bY&t>#P>1Z%#ZruOtYZSy#Z#1^wnJJD zGK1N`J+g=-uml;`tp_fLtbq`f0JC!nIy!)+UtQNaO24tJrX1anBZGqs${7qlDkMC7 zP{%U&f#w)uu{Ri*Kp<2C-gw{xGKx`x*-3dR{V}ajNrQ9qgilNZ!avYZiJ7UwkgYdb zsA{Q3KJfJ5b3y$ay;Jz>;)rJ_$>hx_B342axQojVnx7Rq$w|cqn}cFQETwX+`*^us z;fs=pY4NBvp@XuqU1(S)bWw&SJnqHhBc=r6O&)Dj6~xqqig2JHJdzE?MiWTtWWjg^ ziD)umK~!B>5KVlZGZ-YnG;8GylR%Z!B~XsiQi|yUzd}FADjO6V!pR|OXf1$7^i3rT zA?zv!^(|*80q5GiT@s0StY@aVsG`)+n`IgcEoQ5EoGk`Tu*Ia58c{n;rZ!`lA%-(* z44TJs3rh@?f&3W+NuIp4+`RnE!KrEa{nL_C({fm9T6)ruL5R!9%1=!jlr$ngH!Wpw zR%)&cS}WR-A!&Hc3~Z3Tte{9=vx1^ZTv9VIUVaYh;NZTY21@~&SIBZJtu{khjB}E) z#`H6oFdGyyx9(=S22&C5c$&1_b#IJ1_s-#SSCUnn;x96x^Bo=nznS{Qh*NH^sSwD` zr5DS#m%Cem+; zL?gk84t>7Dnqn?8r0b28N|jEku$6$BNh`rb!F6-)a{;NVKU|WzN>X99B^wm}S84(F zr^FOyjD`}YS)H=4yQNOkry4nr_9WF z&3>y5nj)5fG|P#utqqcikpTU;cETXN)v>1J)FdVQY-NQ#P} zyqZn=(z?@gCm73X=gKqJ5t(iTmVRk@3bib?^YI~{G>%LcwRkk$SXyU1U&hu3Pc_&e z2duRd6n+)7r~`nSM2js^V7A@@hCs=6L2|~dT|}PVg5g~|KDTIskcPFBl&)5kgIdj3 z^qE=-gDqGnC0Eu)$yWijz}*=_DYkA{uwb1DB)fz-;FE^zO)4+PRLWp58EC|lfRv>v zAAtQ0r7)S~r&tV_70BF?Yp~hqHk|w{GXPCuEvQ7Mn=5XDq#tHUrDKrYc1viKT0}E} zzLbh{floDz(?f6LoQHWGRV%K{)R&i|Vs3D50B$LDVQ>Qwa)pyh_R`!fdx=bFvmB~x zsmM$Qo7D!{tG5(E0f9NL(100%Sah&uSP86fx#bik2%BLdSb|U(U7o3hl;*W?OCc%E zW4VV{$02WdRxwauB67-M9$!O(xulXNapP2KybCbrlbV8FRH$~Wd(ASevdw3R31c7| zcFF?Gc+hJNEZ=zJG%hi+2nwncSkh)RSb5MyafOQYG|!AFqqG81R7H8#kb99&I()IF zj36bQU~f71a4ffma#8UV^krhcW2u!UeVMV4G_ncA4P4;^&!R<>U}rUxC5(t{z^E*R z{sV={)oes7K+L~Z9ST1`oLWBPI_FV&WmE6^;iD4x^kS$UWwQ@esw_i^}n5o{J%^h^7P{ zOLbMK&m*Y+^%esgR$_ol$te)6uuRIsS@HRELQg#8BI_p&m;wKyhNlzNe)Q${$);|S-B>v^@4GDv#Vjz)*k>d_5@i>fIa=~O*gzC~VOF(EN9 zv@DgFdqEs{#GJ#59ClVRIu&E6KssQtO`bF;kY-CVb{Dv`;iHOVhf_UO>LQYaRb_h11ZR@ah0{rio@{na01KpGVU1lc2RRiI^*0tlS#!pxO@YCTCN*c2QX-Ue z18hEZC(@F|QpS}}ed!IMl|uh3%TD@SLdyqka}2DscAEm(yk$}yDcr*NOu znNHaTbMfkoQ(6KxEvhKA)lNt;mseVh#U(CDDT8vUs8W)cb!C7UHdQ(k2HRwV!6XY4CA(tpl(~d*q*)8~<%U#j2nl;1%a?2JoJZw^JhSW(OGY`M*a=D4 z$x*o#1y+6oD6gc$BEbnLbSO)v5&L8)J-fnM!l4EkOvSbmVVty*?VZPF2x}G=Tg*l~ zx7ZJ-ITV}E6h$ORqEQMVMPbni#v<3an^~9%fn(}W5Xvi13X&q{63i$znJvx@XP1rT z6n$waS)tH%HnIN4s7D;>>6mA+Om-5JHx6PMDf#2jf6f#UNsS^aB<+Wi2}4lFZ4-z` zQ{`&gM+8kAuK_q(=QN4%Ryk*-x*(_uWb|YFT?Pma#W(^D9CS&WSfMXv=mmwVT&>Sy z+|%O3CAkc?ODK^dmLnCj3DKygf>W1az6fB%$-H&k94V`#Gyv*gSX7y07GFFnl^kAH z%4qa+VFlw1D>aO>(US`u@>JkQP0xTuUCxEc-&jU=NpNd1x5v^tfI(T{#=uOyi6xsc zOW;ZRH&&=7Hh`<5Oqe)b{leTSVhUXhpdyCklk77aO$>Uy*~F{kWDt3$z$L<5gmLQ< z&gC1ed|TNiHopK$o=e!JM_po_UE&s5R$#EWL^$jbE^)vI<-!C5wzB_?8GW)#Xov}0 za4z9w*vQ->49=W&uqM;H?H04!*w9pZy&rBCruS`luT!mTs4Hy(5xHX&nJZFjDC6#l zvi!|4jFWfs8DT)nX}Lmrjpq~uBqPNVw0lej^aUu!4u~X@BYdyR_4OMl9b`(7U&g_L7%aC<#w=G`NukQt z+S}j^R6CYno$4|NatSKJ&czUilKWw;OfPl8OFhliaSNMFuV0F;6eKU$MIb<|sf|$15V}-<{w=CV`Q6XgtxZ&HHOnHk_nFm+~io;sAkiTP7 ziphbqP_0NR%84C~QeF$?;C#sQmI|Mt#qB7q81J&xo!&U%`l2<)qWGAw0zev& zR&2d9gq&7R{GxBUNz_o}6766xmpJECorAYr1l7e{gyjeJpXI1LgN4|H+mCo87^H?B z!%9rU<*mS?l*V~Z(NW~8S!MoqPjepxjx0TUcgfGUl^7k};#l;?kn9$vxyVV#0ha}{ zYXV=X+!k%o<7L=0r)7)4FK?{!L8$m?6w|VT)u4pKaATzxqVSecx!B}$iKkiBCFtIA zmjpf+irK^^R_0!sd1IVvw1YlQEfZ0EF3W|{1WQ}e$Q)40fq{VxVhRAEQT%zzti~sJt2|Tj7djLWD#5V` zkvZ=MTiLwxZnV$M@~t<@#v7qXbo4fV6Q4!{7qd!)*&+uW7ARo^bn(q(*o^otlpKqe$v$Ep zOno$5XeLy25NALb37qL7%&RMV`ShP=Dw2cF8O=~TCeQ4e2@SH?nx^a3^DJh?o3XJG--g&Z@3L6B|0!NWU22G-&cy*mCIIu$G z(>l#qXta?Z16ug`pcU#gRv;Gfk{zcsb+BM3(s^WGo_UaYGOZTmJtc>=hOfo3I56_h zN<>J!r7HvrubJZ|4Z(QID;qqGMx+ZUz3T!_W($t zbfC^MJG}BcKB8;I`#vT- zvQ6Lw5h4PM=@@LtchA$x$^k|3%7oyaqP*@R;0DNQTcw*x$zkqvr1FvO2$jor0Q%0( zoQYE(3Ymq$wt?R`X2W;RIXD%<%6%y~nbe4o385UE?m$l?PK7W4Dv3=+jD`ENIfioh zEgXXKD|pNtst{?oB&%Z*Ac_$~I0#z`&ZIEmpBesS#HAsn9DZCz)$dlY{dnnmKvTJS z_*$NDCBwBMhH7rYlj&}SCks%;$VF|NL^*mTp@uf#6LlmCiBvN%(pegWyT~Oj9eyKX z4TxpBWV8mStm4aVYBSZ%DCe2#k|z!EM0Z>(R`qBK2crs%!%q~4H<^Hv$cI;a0Y=D` z3Q-lTINBov6~fMkO99v?;H%+3^?kCI(Z^+i>~gEikX0)nt%!! zQUGV-b)n9(xKz78AWG3i1eY(@OLPI{sX$s0FNM06a1cR>DbjFIATa@Tu92s(syY9p zm~@~sgG;EHHjWGiI!+8hBvF}~sjfX#S5@r)-Kr3s1x8}QLPwixSBq#ylxM?kw+8)q z!*9e9R5B(PxH8_{JHwlezNY@B0V)QT;2JlaNrdypeVxZ!FZ$h`qw_EpAdzJR;=so=NE04^R=ZB zOqc{_;yt1{QM>}RqxMl6izM0N6m~;U10&9M8iaJ}2{9dz^r6sT-m9*1!gav0q(Oim zd<&=~lv@ORihLj$M|Bv75?LU%K@qGhltQlUU~MTzOhY93h{{w?Q9Gr5XjNzG9V==} zsaE)vG}pE}IfJ!!_U0g9E5pwz%Y;P6*zM?qs>#2C_AVUTRzQfF-DLV}o`*iM;y9+7 zFj;)elrq*6Kd=B89CCEI=IalyPF&{TH>R8oc z(hv+dWu+!s4OmRfDH;$&us1=G099B>gLpCN(LfQ*r9maloKzaXk=WIs1U;YfGK-=YicILBME$+PQpJ2LK7ck#!v>hK7LWj7$zR-ZCBFF7^@~YcIEIQd8`TuVn z?46C%?m&d9d#QJ0(PwoJx&K!0-n37^Z8Wq<7PDaDTPGi|)`eW|3SB-LP&98ALeh&l zAsWvjCIwP1Wu9h{X6WqW5kvCZp+!Z~4CcDLpb!gmn|njW{6RuOUZ8Z;W9gQQGA00% z(EqcMrpGv<#S_&eQx;FGy^~v`F$Qit)}+vy^kDUgX@pisd1-M;^^@w?CGa2!11Iyg z2q@++geR>~a7Hj@rB=W|i!71ei?Q%lsHFw%Agl$bJ>mc*W;(H+L5zPZm+q&sGUNM z5*XdvUpMV&vSA|zqy43vzICyjle)F3N@*naX@+!P4v}SpVNg*I(Tq+s#(dqlGyEo$ z)eZxQN-xBZhCS+`ZjV`>)IP!m!zh;Eq((wC)E6R3#7>rD+aU)IsS8a5K73B=gbpW> zK`}0no}G9J$P=oRM?;Pe8!#L#ub?XGhy}Z&cH&<&26!g=g%s{QOo;uFM!G?F;I^`n z7z9#dQXpLw`nEW~lZHoICV9&Y?e7v-=b%QCvdC=iQ%0z) zE3)5;I-mLKmFkqITirWxY4gAk5-^g7Mv{Cy;e48e zPy5=iN>2?7v%l<3<>Kk3Q3VBs=~Z4TU$4lpJdPz0xg*0Ss)8cJDx@H_S7;fID;w>P zbS2Ku=?(H$MTS<*;u%A$?(=m72%o60Cwjl?J`XQADlZ>zEv|A3Y0CWlBnK?jsmk7f zqk4d&Lej&igs2c9714q2@fgMg7tVsb+!6$Ck;PZTK%Y58C)B6`#|}~o5Bep@0~d}3 zsl3n$sKiF@?&R(M2W%= z4pRkzOR8Q*1H(fkl?ogaDm5j7ysT=W8DsC^GGfK~butK@-loAIBzeW8aJe16nY!KY!a z%_na8y&z|Plgh0eB8B-A|To*`~ql+E072XAmPVAKx>;a^gC!xwbJ1HX=?0f z9}J7COJVkSAMj;UbjT$SKRg?8UVM_Hb+DFb5pknP2(FP5;^aaBD(WDBK{Y{=?dU=z z2k{3wl8;2CM_0HuLfylZ9=pv)Q`Ei#K(0sfLJ zxCjt5t8tf=*hro$1t)$0iQ=9BZ;<bwUEw_-OsD;@sEu=I@3n@Xg zkU#~V_u-SGV6=@ccv$S3Oab=~z5(V{-W&+GHOYkj^K7=EZ5gNPOwgdg<^t@?>$aE?IU6+ih< z(n55pKzXWelpU|hyDf_;lC|~9wJW*U_8BVec!ivi@ z5(_-GC(U#AZ@7EJo2Jytuu4#hOR1}f4z(ZSQh0M%)kQvdF-L_}T_v^VWk6k3MPTZp zNy}~S0>zO=SgW=}WQXy>QR~$W0PTR4v+##J*yRy{CJF5V;R<9Ik4`PULB2~of0(@& zo=H%fdO5sR=fbMaIVx%IC0EkkOVzNBV#O>=HMRFbdDJdsA^8Nf;WQly^w7ehqMAf` zYt#}wIjJsE>Ls-CoD5cVj>rk+j!)0f8~D6Q`UFTV9?)9=0sRpKzsfZQ`&D0vcaWN9 zVPy32)j)AUMS_9?a8aX!s$S@qpb#I--ow>i;S4_sDvA$qgxb>rk;z9C2Zcl>U{!$a zNmJ->F2?L@TX_42*#pGf6K2nh3bWr8B{y(Ln0*MkDN5 zb*MMgo$5$A)KDgZeTYJH>a|zTl*tU;S(QD3M5e}BhX1h!f^I}7;*|;;899f58;)!5AlR{T~)<- zp*j&5dvUzId{BRTCH{kqit!NPOo@(xiibq9xg-8q;0>A^+@xai8NJu?7gzMRS&^7e-g@7Syy8ib; zfJ2S|CeQ$_ryih48dW3>rcfDZE9tHF<(v%5X+VIRJ@5$f)2KO}AjEjL8MziDh%!II z+Y=}QxZDk`T8aMbZs7q*>1Hl6vfg|`34{|L}S#^bKD3_}ahvq^5ULES~f%=LSjVQ)}MkvYYxMe^A zaL!q%^&a%5qC_IN+a(B|Lo&I$K{lGzRyWar8?lsf$>UfOhL#1_Nb`fFq0HcEQj}eB zlL#d2;fzvTE5TK0*N8@bq?fwJASkqYu})R0AE*`LOepxGBR11mp&Da-C_i{}NX0|j zXsFRMR4#)WD=!$pLVZb?hV`X!C>g!$)j>ca3r%CZOQQUcd!M{$hW88E8(MWRwCWp( zXkM0h?k164gTTaN_>W5#RQSKK?N#>OM#F_K~Wg()f6jQNBScW&G+Zj+{YP) zG+Ct*BK`|Uyiy}ST5$-u0WVkzQ+8+>kfENmC`FBl%@1-WItYYf0Rv%8OV6FbG8do; zJR=AL3L}Im0=+DI_K*ka3lSK;aGAvL)Z?uNiDb&<(hUwPr z5n6SEk5#0gWn$68%|;x`(~q(Q@ZOU%ig9@Y2m{bdj?977jgF9Wv4nCtwH!$Rdli}6 zczdBxl$K$l8mY`7ujrXZz8 z;Zg&)8itcd5;&WKcwzmCd?1^{5$!|}^}}=v57>x{JnnTQ2RqOr9*Z#16||tDI!4uc zDD*>$+!gNv7Pc7<3~IsVfi(09TxXx~fJXCD6j=@CfKv#9a1!;%&lieHAi`0AjEHi!eu5 znF3Dy6hfhtleqTl8#PBHxK{T2I6g?7BoYd;U=ZQwttRS;piHtK1n1XC=(Hl6Oc%82n7*L^7i+^G^UUZ&90#(?B>ExZaq(SYBQV}s4LI% zLhIBrM3U=-AYyu=G5@S!xuF+sT&75JEmOo0DgWZx61@X_`0AWDy>FDW-P|uXx-WDE zuG_$c{^n@z6(@}aI!K(bzAm!>4>+_nN^#J&Zxk0lGL`#A)t9^4SrLKV2Vxw((l?4W zC}5WC>)IRvg66=oz-2xe1gb~iKPkm_BNkz__Jd)p5-YtZT9brU&+++WTKM%n(FgDH z(Y`$R=S|P8JME*})@|s^30d(~D{y5L^QdCD4UaJ|6&!?fa+7q-0~f2|-{vdxj;rn| zzQ5_@?vEat(`{Fi1FAO-Z)lo~9npKy`wI+BA9!+mpNPnloBO;Js$1v(dECz5#x^gG zUfkeU-Sg|V2Cne#-1_SoZ<==pUmfwtfp6n~8kG1@T8j5CKlYf_CZgB6-4_?#YhJwT z&wkm*7LP7E+TiK5Ll-7==or@T~B8Q4z~dr8h$ zqyk*u8wjcS+5j4dX47q39>dY-4!8djK}21fukCJkFA_JMdWDU_PY*+r-Its|>T!E( z7*P~YCz{H|ij)8<$mvB+B_M?H5*Yepqd=K$qId#{dIIxsXn7i2xwFr?s98(=k0kDgcjnj2S)h0xxfC#Im zFrL#o*A=We2aDh)vAQ7|GJyxP*=SNTptkeXduW+UEy$ut+3D#D(yVqZklTquBO`Z8 zKkPxd0tAGp$haYz0BoM5<)a{B#B+s&Rk1~g3bb@d$C{!BNK2qla)j>S9t~V$WA@^UD^TDzb_f}mMF}+0SoCpoU14gz=4<9f&IeN7Z3sSe^KUF|G7mo74o!g_y z>C2;)DbuqZ?MTAK9O+N+^2Qs*pi{^Vq+G*&eB>?xb{}7Y6n&xiI&s+c+>Q1@EVobb zV7wAkQ4ss9KvZ| z^0UdU65vScUXx;Dw4h2*gyRf5 z`A#f;B&k0x4CPf#WNe_s(jBGT^fCo;f+ao@92?uQ&f6#cDK31u<@~@_zKVhkme_!Q zP%r+?p!{hp|JaQ1;VLqgg=>2M0lu1-DR6XM7)zH}(ruzc+o(dQ8EzQ@=_nvyufgud z<-Y$A&CQNNFGU1kQ5g z*TfJ(-7mZ#dO^hxc`P(lbu@R7{cUb3}--^N+|6jvQ zw?(mG63h9o*BO#!l*ESKDc)OLG(*&&>*oF~+;lx18;zUQ|Al(%=uWYJGG0h_-R$-q zA_^`)WJwb4K61bF=vJfLA-nnAWGq=?z3vc$>jZ%NweA>&ad3c3!B4VBnkcT$TQ zhXcAFJ;u>;Howzut$~&%JNZj?$B}LvIbEX0^b#BWAJm!mllzD7;`9?<0$sYs`bsQL zInzivQYa=5M^Rd1@X0w25x_~uIIIpw7s#L6i}TF9yToYeAKrqOSYPOyqzDHlm6n<( zXX3CDBTf%wR*9MFI6_IId|0lTjDwXl1qMx#0mnVkO^8Jrqe(Naf{sAfSTN7(af(ok zW`wyyBQE~aSm{g-O$D8Ors1e-oKB01JQ>E=-jB|_Lt5~B{7P%JPHBob1Fn;%%vxx+ zK%efUQFK_jah){s@qE2Z;#}!Yn(T@KoUwt=`uPc)y$ZT^)yEgcC+HI6x)`+G5?j_T zOdJ%Yl!=2cXicEOkN&cgQtAKQv5(E&+`RkJoK78Fe%(K9#D#&L?DDd$ORh8>8sOb8XnVj@2fZRn7fy`y zZ@#^L`hD3^k6!(>X<4~N_r>ao35CgXb5?xuPBCjS#MtZIX%p`~&nADH*mY{)sdm$P zhrK*=iU(s?@$OeNp2NHuTZ7+vRBxIWV`uUF327}*?;d!*fgj%2#-|~SJ%scGEC)Zq zb0(#M==+iP8t~9Eu^Rq%_-#gb1M>fZIQqK|_?7sz27EG}Z}`Gcl!RB7Z}XFXph&+J zct4<{x2?rzAoNWiy-8m4tN&=A(%uSH%@6;n={;}u@$XQSb+d2(cTlOySE{M}MRKym z-Td=^KM?B?>3`P=03A`MBJqs_eRT8h9Re^31wDYq)7KPtR?@$54!{P~rs}_38~SoZ zwC{G00yu|S482{F+}UXWDHyCdcZT|Q4g^>Lw0#Nfe{v?kIv`1>K|@~~{b$Dl`~p(2oiQ}g4Xx(MQAonTCnt(@I`;{ycx z1F(Y=kg$qRujpW!%37yhOa*uw0VF;db^T(>{S=+`0M#hx1k?mmP7*jq_!OXEtAq~tcF=*(FMBMKK z-BB-JF+^!D7;qRJR7;D-R-!j)j5ezVSI?A^0y&B9QqY*kX{PCB#7O;a3z>Y;3{KK5 zg8FJJ(dacM`QinEFGfmpKmJO9341F)^wgk9HA3CRp{JD^aU!3r&5x;RcvL8`VWqAj7bVMU;s77MENnHD!gqcnrE zb7J#6<8UArp_4DF)8ObXe%d&%XfI6*=gZQ1Oe4GFV zmcX&^22`Qswh?J2>qTCd{GBwg-eY9o{waZ3g9F}hfletEK==GPYKE?^!Pf>l4Ola| z1UJf1H}iuDX;|T)MqERpDN>lcyWrOtsTV(_PJ>~H>(DGpOX#G3oI^*fOFiH`GSC5t zMPK2B7)e6|l%tSOSR@R3af%}KSB$hwMIcJe-9Ss^winmNQ?Nvxd21!6@u_{YCCa2$TU$D z#${-^w7S29p;y`hYgOA;c z*WgfVLyR;$!=x$2f?i{(Fwu2)8ah>&*H3hiri7oBs<5|J86k)eXDrg{8wdNMZADxx zVGwbql-l6TI5BL7k6hDsNKOp3jTm~PkF&gLL^%^>k zzPl(-d#8A$Bw`FlJ2;tcK#C$Wgei>>kdV&kgPe5~D8-mW=y(H_@@^84(p;A9KNtA-CnK5b~)K}@udk+jrc8i{5T#*tNH zkgtU1(*s5b2@jchO6khz7%5JW$W0pY8II;#xl^6fG8fM=QWwhPoPi<6xCC&Wh|6$B zFDIyDGM7@_b2;X1Swf4sADmrbA@ZAWLxjeL^O_-RFnIZBCCOKCQ!Kn#2M#N4Jfq9l zA?pZHJ6vmO)=V&&C!+wXrbUU_)`F+BuTe&h^UzyOxj6OKZ4}&$lSFH1<5ma_F<4?= zSRBEAYrJjXrFr*tz7TuxnXCspURt%)YJ7I}*#&EwclhgCM!jYADvE+S7)NKOPu=s{ z@4B$VpS5ZfJ?qSp(OaiZoOEU4!Etw2uNdSVH0*&%y&sHd@y>;W(ZSwZ^v&k-X0O+PTrO$$d|SWj=Uhda!q+>g&fk#x;dOm$9$we|nLgSpKk$_~n(s ze1~mM*S`?g0Q@<*sksL{r5{`W@<-;pt{2W-?7uabaujwSP1=RE9CxaY#)-JtYBoe; zPdS>K%B&@$t(L;kbVw{e7<;tX6;jSe=W0=%apr>Yqj4t~nE*$doEN%cbGfELv<{3h zHY{u}Z{M;%^eC!(h1{#IaO6rSB*tIG}d< z{~0}cvtZOw*mCIn8scGBesdmXr2)OO`1yDmjH^_JSEcY5%e-slui5j?e#iSO`0Iw3 z#_;A2T2H4gm0=W!6Nl=`r{$cYa0}1=|C~Faz*q_2Z(_^6_nl<=f3W{oD3IL>Em5hM zwz^dxFW(Nc`_KL}Q1Vu-sBWc2R40`r>4LR^UcO^z_m>Q64;9Y6(2n-<>*ytUNY!0c zlE;cH?I3M^mzZF!uUcX&Jf2ZiF|DpfUJuRwxFcU3AClpBRnnMyYZm`;_qD|r=B}DB z`iEY+@b`aev0_Dapj}(-d0ktrKE6VYcc4|_c&R~B-`zTDX|q*Lw-DhaHKCO&EBT{J zGj;x2UoZ6#53g|5kX&83Hk1NB;eNyPR@}N?j4KFrA=)5{^bYsVF%;qEnIc_NZ4|}$ zh1dQ5r>>p04W+BYn>pSr(9rG5nq1sWNz1qFlq5~8R;SZ8tskiCrtPYWjn!(qb?G(| z!9;D>*aSJKwf!sglk2a(LH)JWQVUl?q3_hyQZV{j@>5ky65IFqq=cVmznE~%cqx7Q zgAZhXJg@wo4MWzpYBDqNxaZTsFHKv#X|L7q?*q$Pjjp#j@nGYbaiyVGdbIg{$qQq0 zC%mxZRQQ(tXFeTv&nJeD*JsAWZXDV%tBd!XYsThVd#C<=C~WzC+on&NJ;Snb(lY(e zbBhM0?|toy?hj3VY;tk)Ctn-sb$7qn7klpW{V1^4o=qoKW>48S>w%+E&lXqKFY@_h z%+hyHpIkk1$%2c!`eu!{u0QmnZR+Rw>5Jb!THJ2((wDXe>FPbof~9K%@6HSU=zT*U zzaLknfA>cxb@ztvlz7&A^5=WHY+G~x!-m8*y9*DT*?Dkl>uXorUFb5q@}&-6a#gM~1fFvuWBCU3+a?Vjll+m-mAm@2yzz zdIapsW=)Q<(5$PcjUZ6Z@W9wOtyUM?u}fUn#DsWJqn1>os)+ukqGQ>fpI5(7ziZbP zo6Da6s6w?+n@2@9^T^Z=)Ml*cw<2wJ3f-5{y>sWulPAZNIo?DnG?#TQpI|hXTRRt8 zN;`v@!NuTVurF~hUcJ@nqP1P4wcTQnuGK4TmL!iM+Fb2jN?5C!op#Ft&@AgMim+(| zsN&(0blpP*-P(OHtE*KKd-~$;+`vA8ZB9Lt`gP#GrwbQ(4eZl&^v<|d&+aH)-|SuK z&69>xPsN1b0nv6FKXx zCE1z{_1nzOSig5hT4YL>MW5P7H|TWWvGc_*9<}c3wQA3m*rsEnPHbqb{kzj!-Z6`2 zJ(kukZ}gr;S66&z|N1rUM=2YB@Bi+m^r$g+PwFuI=>xx=zi_$#pw0RRH$0Sd;)N~C z=UuoyJ~{Y}-Y0@iJ$~iks<)>6*mBL3QJcz|T^g}{#%uc$cUS&!Z`4@7Z+mUncRFEP zn)ivu38rJcdU&eW99Yvj?9rbmtqOl7ZDfkB`rEH(t$SlbvxuBb z@y}r|th+pC;_fB;pBh;->79pm%!nL6|6Ig{^WVhlwtQ!~{A$In2bPWBwj}Mtahtxn zzIVaAil0vYJbVAH#^1Glcho|2hI#lHV~0bz1ONKvqiKJXMqW}k3=X~Tg~3m3dtunY zu^(KVsJU?0^G|$qV&BOw{d!egZgFZzpYaV7Cxo0B+2@f9EvINVoqw*|$MFxpuw+E5 zzFWE%KkJ>p;@a0eGQ$53IC9#*?B49XXYc9#!#6&^Jk)$Z(tC$aJ~HYz^^PVc)6aSF z>alKl1u{uR**!A(O_9p2t4`g6=M zcDh_1sUb7J8Mh@?Iwt|0wyU;VtTsMTn}|suHh~9qS_=M;Pg2#Y+S7rGrUMnG1B|&B z&tA5KM8&-PwdsZGkjyS`o_}q4^QV&=cbITuWcCYNyt*~=$awRf9RW=bcAfA+*w_AN zyS=y6Ys0R@FQf=v^5=5`D~s-*`S{pYrR$%{c=ANa-TMzO%iZMHX~+6+)^=Ps)pz|@ zi$;7jwvp$Fag%C1j=JBm}B$|ru$$j(5;FlY=ob~aAH`TKr{xkpVXF1y*di?&k z-)(Mdo!_9{YoD}j*RA!E!~qGPPT#m-T~y08Ysa0^HyeMXUB>eK2adKL^Lg`uy>s5* zJgiSE_1S$>M|J+9<&WiKg6~S7{K{YK$lEWes`I~lH}aLOjSmbNcsy}s@QIcgZ#USI zIz8>D?K><}f3O^Hb$DC)(w%4CiyHRby$_$t%+RiR@sY!)Mm@d$%E1lej&5IUpLY7o z(*uuZv|kh6?zuHHimQH}TQDVmQ|DP<4SRC*w#n_!gr|>aj7e3K@aNMkKH#|`P&{J6#7HxPteMRY#{Xcy9z(fAZ zba)!m;R$Vsm#?hlMM@q}#F)$cSLbBZ(2*fRjJ?dw3G(spSYt7+n5P{`*-A2K8r!i15J)W3G?BMS~>zB4$yd*QIm;ZU6 zIbSy05!>MC*`3jQM?LjwMxx&be(!zo^15T2zWFZlfxFU%cZ;3aw$VKsFSPyZP^a!1 zKRQ$aD z@|6cq`d9sG?6Lle_O!>KM-CsZC@Y-bYv1yrS%bG#4QsJ-N@#5Jsb`Y>Hum}Z`A?o5 zvwh_Q%Z5!Hn$ObLX<qE-ri$KD1SV0*;W6)9#-X#x-@Xx$hUre=TDE(jkL)w*#mT4w6QB9s={j9{#G`s zYH*`5?KGUT*eV zp1M&x?ZU3V9e(=S>G^*b4|uLm)Uns&-@SL+f%dOIyLr;b-{ek7QLQV#l>h3$#TCOU z8;1Y>*!&GAeHJ#Dv$E;=h}4%ZW&V86XN%sSwzTQ|SH9?b(eM7sNiUAy@|EHKH#8eB zm&|`}?OhGLuGoszzkT;n%Bt(D7QEJdO=dyMyf3Fs`M|5|F8k4$<@@d~>Dul4oZt)D z&$ZZRyZ*tY#ClQhoT-1vx@1!L$M>nDKVW+^*T3<`@{=cqq;(kg=CPliKYH%{Z9n{# z<`s78^WG!6%pLJ*;>9CP7UgW}*=Y4yeZBn?DnD4((vsXIchSn~@VB(p;jcT0t5!?8 z>hLv)Tjl5>vQ30Pj;MJmNnP7EQ7sMk@>jS3AB(T3mimFVDVWmwfSYC1vqt!-r8!$#ZMRToOO`0pM3{;y5qQq%PBhdy*{bKydj*XRM!Rex@75RR!N5i7NL ztyUWwr;F*@Eq)7tm`E1KyYtSj4STVe9S60}KPi5@o(Yw~h) zHEFq7-Q#pA@zHVGzezBd~dG9pBaDv#HS|J0o5lRz1{j-DiKkvb5;jfUP-Rb5`m14x9RL+MBI2 zIws^S7&WhZ@FT;a~7P62s?=(vqRsroJ&?Up7N z3XWd(ThL*cM(6R(XYcGjuL^QgOuxYH{aoF=-&3YdPj9?4u4LqWWka+>gB$5kcr2sl->Y$P18#_ zwV<^}fYwhbLhVyy2*YM5vE*ddq1~f1-u>$h&GDv_;(I=|VPvxBXZpX+c1r1WD%j_@ zyZb))jOWK*UoAL&b+&e}&?Y%JY8WA%RTCVz*fe>v@Z@?rZE zcYUr_ojenKe@W4)*WM4mw7dQIrA3MHwu;I73LbqXb@O+}o>}JCe#HyzY>kUP`ZK*E z@WW9FA@zet9?JT2bJxcYyqtL6^O&)6Wt&F##B7fk6tp-)XKXNY=FnC@jOZCVvE2KO zLvO#_|M|PqSDu-*W66Gh4~ynoNvgF?0^gn-I=8##)RpkX z7cbvqe0+i}FXW5WeysYwzfVsu8Q3X*=Z<6g_a?pGdtAp+XCrgldgz)ZHEy)9$zI>^ zN2cqwBQ|PNgU^k9U{+pAz*m`Dy7|14eDJZCzO-tGwW(f}7Wmn(7yH@wY-=?(cKF!z z^TYeij-A!irZ1kKZ_nHK>0^TyY=8f`G5hr4rgk4Rx-`4$t;6~&>D${jX;mC%Y1Dk~ z`hi7rvI{njxjMO7ud~A{UfMc0IkWFw`+}eJ>Ro)##c}Vd7p2ZT^Vz_wrejZhwDI}# zQ#<(S&VHNaHUG5-eBytZ61CyP(mg$ocTRnC&4urawmvIu*Z4j*WzUtj-`$-$=I(k= zN}hvTWGa&CXGp4}H(ia_DVqK(tMM=X82a&}zdSR#pk!aK$LEduYVQ*b-v3X9o?|sG z3%!Ks*tq|e(7OR{tio52oWnUS*FCVFu`kftA9Y)Z+qJzE`G`}>XDhd#M5Hf-*s zPx|&vTK4_u`qxKay1Rb-l2$_p+Rh}0>{`F=o)7Lh-*v{wK2hhFRt}h-!`62Tu79y} zrQPt&+RYPw`f%?bA5CTEf!fqoEqZ=>TD^MFqa)hC{n}NJBjr!W4rqII$okILUOVAJmyVnF(Dm^J_Z-|gz<++5qlu>)4wzWDd|LCe9Z#-$rsw5*W-J;% zZ_0CJ`;R<%smYaYUq61~gVlbEWT8l{hH8^pZGec-xF0kKijkBvoka9J$t0bMBl?>Y)e}B=)c{N z-PFAG+!1#8xX%08$GZP%=r`q;zn<^^;-7~sGxZb9lh@imUgP^x;#;Ra`1tGUS1o&* zT-b7-)U@jF#&bI4C2kt^?XJKfOQ+s%?cwwDlIUL_{vj?Vto_AzJLk1+{^zcjvc7G% zW#iiK7HwLS{LJo88zyD`F#A%6Csu`y(|-PzEq37H!f6+m&h6az!{+NpY+m<$YR|>l z6Te!yf9H@NjfaM9-*-s+?$u9z&ip%Y+nB*8mN#wKt@GQT4)=^X6SyKf{@XLYZKJ+; zWoCR+pEtiv`0n%kM-SN^$Ov0mt={7lAzqa!K=Cb0M)_$-u_#DZe*0f&o4{vHp zF_z<#08Lh&SXgyQO-qc{ro^X3$E9f#bse?s2~Zv0!hM;d$u(D43Jsb}oLhw4DW&GZ z39gESC(ge1WQQ-jcwO6~L9k=38ILtg+(<`6f>uOmr)YaS7q%XfPK(dY{bU4Wxb=sF zn_^PmQ^DGbRVp_88}1hn7q8w!5D6~%RkZKzu#oVj@(Mq#564mO$FVp&Tll?KYHHM( zYl`;>8_BJgN+Ux4Oo^lyxZaM zrM>rjbKl%8l}p&Zz2*M9u2;7jyCt{v2vtDFs`}Kq@mkNwXoS=@3~*9zU$a#k(HY8yH1 zD=?h}x>-Sd^ADb_pP{uMbwQvC z(AoEE?VoDxpJ?qHJtFEF+gke)t-b2mng1J!h28$JnSTZhGI{)V?_ZC;bkBneW=xHl zeZiIUVdfz7oodd?ZQUQ5J;^r4vN0p$=<%jKR;*uPUVh?uOw<#N{eC&L%`f-Ei}O3a((7K zcWu|2xuZWm81GXy*K_zw`e#Njey(2A$%$l^~*qhfaSdgb)2tS^0SuLiH*5?yuX%Bzce{Qmy(%i|{HbU9W0 q?Bp+&WpzE%Z~P;Z%c9%f`_l`TOWTg>**ZFHW4-88mk;sv(EkTgxx!2U literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Rest.ClientRuntime.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.Rest.ClientRuntime.dll new file mode 100644 index 0000000000000000000000000000000000000000..400c8287a752dff78595acd802b7404f9301d096 GIT binary patch literal 79736 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 literal 0 HcmV?d00001 diff --git a/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.WindowsAzure.Storage.DataMovement.dll b/swaggerci/azure-kusto/generated/modules/Az.Accounts/2.2.3/Microsoft.WindowsAzure.Storage.DataMovement.dll new file mode 100644 index 0000000000000000000000000000000000000000..6ac672abd48641e9dc4266d9fc3dfabcfad39110 GIT binary patch literal 302784 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